Ответ Хастуркуна с использованием опции xxd -i превосходный. Если вы хотите включить процесс преобразования (текст -> файл с шестнадцатеричным включением) непосредственно в свою сборку, то инструмент / библиотека hexdump.c недавно добавила возможность, аналогичную опции -i xxd (она не дает вам полный заголовок - вам нужно для предоставления определения массива char, но это имеет преимущество, позволяя вам выбрать имя массива char):
http://25thandclement.com/~william/projects/hexdump.c .html
Это лицензия намного более «стандартная», чем xxd, и очень либеральная - пример ее использования для вставки файла инициализации в программу можно увидеть в CMakeLists.txt и schem.c здесь:
https://github.com/starseeker/tinyscheme-cmake
Есть плюсы и минусы как для включения сгенерированных файлы в исходных деревьях и связанные с ними утилиты - как справиться с этим будет зависеть от конкретных целей и потребностей вашего проекта. hexdump.c открывает опцию связывания для этого приложения.
Я нахожусь в аналогичной ситуации, работающей над веб-приложением, которое предназначается для специалистов по ИТ и требуется поддерживать тот же набор браузеров минус Opera.
Некоторые общие вещи я учился до сих пор:
Еще много - определенные вещи я учился:
if(node.addEventListener)...
, затем общие нестандартные функции — например, if(window.attachEvent)...
, и затем, если Вы должны, смотрят на агент пользователя для определенного типа браузера и номера версии.Я действительно не столкнулся ни с какими определенными для Chrome ошибками JS, но это всегда - один из первых браузеров, которые я тестирую.
HTH
Chrome на самом деле немного отличается от Safari, он использует совершенно другую реализацию JavaScript, и о проблемах сообщили и с прототипом и с jQuery. Я не волновался бы об этом слишком много на данный момент, это - все еще ранняя бета-версия браузера, и такие несоответствия будут, вероятно, рассматривать как ошибки. Вот отчет об ошибках.
Одной "серебряной пулей", к которой можно рассмотреть превращение, является Google Web Toolkit (GWT).
Я полагаю, что это поддерживает все браузеры, которыми Вы интересуетесь, и дает Вам способность кодировать Ваш UI в совместимом с Java IDE, таком как Eclipse. Преимущество этого - Вы, может использовать инструменты IDE для завершения кода и проверки ошибки времени компиляции, которая значительно улучшает разработку относительно крупномасштабных проектов UI.
При использовании компонентов UI GWT это скроет большую определенную для браузера злобность от необходимости иметься дело с, но когда Вы скомпилируете, создаст компактное, развернет файл для каждой браузерной платформы. Таким образом, Вы никогда не загружаете определенного для IE кода при просмотре приложения в Firefox. Вам также генерируют клиентский тупик, который загрузит соответствующий скомпилированный пакет JS. Для подслащивания соглашения эти файлы являются кэшируемыми, таким образом, воспринятая производительность обычно улучшается для возврата посетителей.
Среда развилась значительно для размещения разработки перекрестного браузера. jQuery, Прототип и другие платформы существуют для перекрестного браузера JavaScript. Сброс CSS хорош для запуска на общем пустом полотне для всех браузеров. BluePrint и 960 являются оба платформами CSS для помощи с разметками с помощью методов разметок сетки CSS, который, кажется, становится очень популярным в эти дни.
Что касается других причуд CSS через различные браузеры, нет никакого Святого Грааля здесь, и единственная опция состоит в том, чтобы протестировать Вас веб-сайт через различные браузеры и использовать этот потрясающий ресурс и определенно присоединиться к списку рассылки, чтобы накопить soem время.
Если Вы работаете над местом производства большого объема затем, можно использовать сервис как browsercam.com в игре конца, чтобы гарантировать, что сайт не повреждается ужасно в некотором браузере.
Наконец, не пытайтесь заставить сайт выглядеть одинаково в каждом браузере. Ваш основной дизайн должен предназначаться для IE/FF, и необходимо быть хорошо с разумными компромиссами на других. Используйте градуируемую диаграмму браузера для сужения в на поддержке браузера.
Что касается лучших практик, запуская использование каркасов на чистом листе или сервисе как макеты Balsamiq. Я все еще удивлен, сколько разработчиков запускает с редактора вместо каркаса, но с другой стороны я только переключил год назад прежде, чем понять, насколько большой средство экономии времени это. Имейте чистое разделение расположения (HTML), презентация (CSS) и поведения (JavaScript). Не должно быть никаких элементов моделирования в HTML, никакого presenation в JavaScript (использование .addClass('highlight')
вместо .css({'background-color': 'red'});
).
Если Вы не знакомы ни с одним из полужирных условий в этом сообщении, гуглить их должно быть плодотворным для Вашей карьеры веб-разработки и производительности.
Если Вы запускаете с основного сброса или платформы и объяснили IE, и это - все еще все причудливое, можно хотеть перепроверить следующее:
Для UI, Расширения выезда.
Это является большим как автономная библиотека, хотя это может также использоваться с jQuery, YUI, Прототипом и GWT.
Я нашел четыре вещи полезными в разработке приложений JavaScript:
Выявление признаков
Используйте отражение, чтобы спросить если поддержка браузера желаемая функция. Если Вы хотите знать, какая обработка событий поддержка браузера, Вы можете, если (el.addEventHandler) для соответствия W3C, если (el.attachEvent) для типа IE, и наконец возвращаются к el. ['onSomeEvent'].
ОДНО БОЛЬШОЕ, НО!
Браузеры иногда лгут о том, какие функции они поддерживают. Я не могу помнить, но я столкнулся с проблемами, где Firefox реализовал опцию DOM, но возвратит false, если Вы протестировали на ту функцию!
Библиотеки
Так как Вы уже работаете с jQuery, я сохраню объяснение. Но если Вы сталкиваетесь с проблемами, можно хотеть рассмотреть YUI, поскольку это - замечательная перекрестная совместимость браузера. Они даже сотрудничают.
Итерационная разработка с виртуализацией
Возможно, мой лучший совет: Выполните всю свою тестовую среду сразу. Получите дистрибутив Linux, Fusion Compiz и набор RAM. Загрузите копию или VMware Server VMware или Виртуального Поля Sun и установите несколько операционных систем. Получите изображения для Windows XP, Windows Vista и Mac OS X.
Основная идея - это: Fusion Compiz дает Вам 4 Рабочих стола, отображенные на Куб. 1 из этих рабочих столов является Вашим компьютером Linux, следующее Ваше поле Virtutual Windows XP, то после что Vista, последний Mac OS X. После написания некоторого кода, Вы alt-tab в виртуальный компьютер и выезд Ваша работа. Плюс он выглядит потрясающим.
JavaScript: The Definitive Guide, Douglas Crockford & John Resig
Эти три источника предоставляют большую часть моей информации для разработки JavaScript. Полное руководство является, возможно, лучшим справочником для JavaScript.
Douglas Crockford является гуру JavaScript (я ненавижу слово) в Yahoo. Поиск его серия "Douglas Crockford Theory of the DOM", "Douglas Crockford Усовершенствованный JavaScript", "Теория Douglas Crockford Dom", и ""Douglas Crockford Хорошие Части" на Видео Yahoo!.
John Resig (как Вы знаете) записал jQuery. Его веб-сайт по ejohn.org содержит богатство информации о JavaScript, и если Вы выроете вокруг на Google, то Вы найдете, что он дал много презентаций защитных методов JavaScript.
...Удачи!
Именно так у Вас есть тот меньше браузера для волнения о, Chrome использует тот же механизм визуализации в качестве Safari. Таким образом, если это работает в Safari, это должно работать точно то же в Chrome.
См. это сообщение на блоге Matt Cutts.
Google Chrome использует WebKit для рендеринга, который является тем же механизмом визуализации как браузер Safari Apple, поэтому если Ваш сайт совместим с Safari, он должен работать отлично в Chrome.
Обновление: Похож это - теперь устаревшая информация. См. комментарий Vox к этому ответу.
Если Вашим очень высшим приоритетом является точно последовательная презентация всех браузеров, перечисленных без несоизмеримостей, необходимо, вероятно, смотреть на AS3 и Flex.
Лично, я использую Mootools в качестве простой легкой платформы JavaScript. Это просто в использовании и поддерживает все браузеры выше (кроме Chrome, но это, кажется, работает также насколько я могу сказать).
Кроме того, для обеспечения непротиворечивости через браузеры я получаю функцию/стиль/поведение/и т.д. для работы в одном браузере сначала (обычно Firefox 3 с поджигателем) затем сразу проверьте, чтобы удостовериться, что он работает во всех других браузерах (оставляющий IE6 для последнего). Если это не делает, я inveset время для фиксации его сразу же, потому что иначе я знаю, что не буду иметь время спустя (по моему опыту, получая вещи работать, перекрестный браузер берет приблизительно 50% моего dev. времени ;-))
При проверке JavaScript с "пользой части" + браузер на JsLint.com делает его менее вероятно, чтобы иметь JavaScripts, ведущий себя по-другому в FF, Safari и т.д.
Иначе - использование стандартов и проверка Вашего кода, а также построение на существующих методах как jQuery должны заставить Ваш сайт вести себя то же во всех браузерах кроме IE - и нет никакого волшебного рецепта для IE - это - просто ошибки везде...