Какова лучшая техника для последовательной формы, функции между всеми веб-браузерами (включая Google Chrome)?

Ответ Хастуркуна с использованием опции 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 открывает опцию связывания для этого приложения.

10
задан JasonSmith 6 September 2008 в 10:19
поделиться

11 ответов

Я нахожусь в аналогичной ситуации, работающей над веб-приложением, которое предназначается для специалистов по ИТ и требуется поддерживать тот же набор браузеров минус Opera.

Некоторые общие вещи я учился до сих пор:

  • Тестируйте часто в стольких Ваших целевых браузерах, сколько Вы можете. Удостоверьтесь, что у Вас есть время для этого в Вашем графике разработки.
  • Инструментарии могут получить Вас часть пути к перекрестной поддержке браузера, но в конечном счете пропустят что-то на некотором браузере. Запланируйте некоторое время отладку, и исследование фиксирует для определенных браузеров.
  • При необходимости в чем-то, что это не находится в инструментарии и не может найти свободным фрагментом кода, инвестировать некоторое время для записи служебных функций, который инкапсулируйте зависимое от браузера поведение.
  • Узнайте об известных ошибках браузера, так, чтобы можно было регулировать реализацию вокруг них.

Еще много - определенные вещи я учился:

  • Используйте условный код на основе агента пользователя только как последнее прибежище, потому что различные поколения "того же" браузера могут иметь различные функции. Вместо этого протестируйте на совместимое стандартами поведение сначала — например, if(node.addEventListener)..., затем общие нестандартные функции — например, if(window.attachEvent)..., и затем, если Вы должны, смотрят на агент пользователя для определенного типа браузера и номера версии.
  • Знание, когда DOM 'готов' к доступу сценария, отличается в примерно каждом браузере. Хороший инструментарий абстрагирует это для Вас.
  • Обработчики событий отличаются в примерно каждом браузере. Хороший инструментарий абстрагирует это для Вас.
  • При создании элементов DOM особенно сформируйте средства управления или элементы с атрибутами, может быть хитрым с document.createElement и element.setAttribute. В то время как не стандартный (и вид yucky), с помощью node.innerHTML со строками, которые содержат биты HTML, кажется, более надежен через типы браузера. Я должен все же найти инструментарий, который позволит Вам использовать element.setAttribute для добавления 'имени' к элементу формы в IE.
  • Различия CSS (и ошибки) так же важны как различия JS.
  • 'Базовые' функции Javascript (Строка, Дата, RegExp, Функции массива), кажется, довольно надежны и последовательны через браузеры, особенно относительно функций DOM/CSS/Window. Существует некоторая маленькая радость в том, что язык не совершенно отличается на каждой платформе.:-)

Я действительно не столкнулся ни с какими определенными для Chrome ошибками JS, но это всегда - один из первых браузеров, которые я тестирую.

HTH

14
ответ дан 3 December 2019 в 14:19
поделиться

Chrome на самом деле немного отличается от Safari, он использует совершенно другую реализацию JavaScript, и о проблемах сообщили и с прототипом и с jQuery. Я не волновался бы об этом слишком много на данный момент, это - все еще ранняя бета-версия браузера, и такие несоответствия будут, вероятно, рассматривать как ошибки. Вот отчет об ошибках.

5
ответ дан 3 December 2019 в 14:19
поделиться

Одной "серебряной пулей", к которой можно рассмотреть превращение, является Google Web Toolkit (GWT).

Я полагаю, что это поддерживает все браузеры, которыми Вы интересуетесь, и дает Вам способность кодировать Ваш UI в совместимом с Java IDE, таком как Eclipse. Преимущество этого - Вы, может использовать инструменты IDE для завершения кода и проверки ошибки времени компиляции, которая значительно улучшает разработку относительно крупномасштабных проектов UI.

При использовании компонентов UI GWT это скроет большую определенную для браузера злобность от необходимости иметься дело с, но когда Вы скомпилируете, создаст компактное, развернет файл для каждой браузерной платформы. Таким образом, Вы никогда не загружаете определенного для IE кода при просмотре приложения в Firefox. Вам также генерируют клиентский тупик, который загрузит соответствующий скомпилированный пакет JS. Для подслащивания соглашения эти файлы являются кэшируемыми, таким образом, воспринятая производительность обычно улучшается для возврата посетителей.

4
ответ дан 3 December 2019 в 14:19
поделиться

Среда развилась значительно для размещения разработки перекрестного браузера. 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'});).

Если Вы не знакомы ни с одним из полужирных условий в этом сообщении, гуглить их должно быть плодотворным для Вашей карьеры веб-разработки и производительности.

4
ответ дан 3 December 2019 в 14:19
поделиться

Если Вы запускаете с основного сброса или платформы и объяснили IE, и это - все еще все причудливое, можно хотеть перепроверить следующее:

  • Все проверяет? CSS и HTML?
  • Какие-либо неработающие ссылки на включенный файл (js, CSS, и т.д.?). В Chrome/Safari, если Ваша ссылка таблицы стилей арестована, все Ваши ссылки могли бы закончиться красные. (что-то, чтобы сделать со значением по умолчанию 404 моделирования я думаю),
  • Какие-либо нечетные требования Ваших js плагинов, чтобы Вы могли бы использовать? (файл CSS должен прибыть перед js файлом, как с jquery.thickbox?)
3
ответ дан 3 December 2019 в 14:19
поделиться

Для UI, Расширения выезда.

Это является большим как автономная библиотека, хотя это может также использоваться с jQuery, YUI, Прототипом и GWT.

Образцы: http://extjs.com/deploy/dev/examples/samples.html

2
ответ дан 3 December 2019 в 14:19
поделиться

Я нашел четыре вещи полезными в разработке приложений JavaScript:

  • Выявление признаков
  • Библиотеки
  • Итерационная разработка с помощью Виртуализации
  • JavaScript: The Definitive Guide, Douglas Crockford & John Resig

Выявление признаков

Используйте отражение, чтобы спросить если поддержка браузера желаемая функция. Если Вы хотите знать, какая обработка событий поддержка браузера, Вы можете, если (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.

...Удачи!

2
ответ дан 3 December 2019 в 14:19
поделиться

Именно так у Вас есть тот меньше браузера для волнения о, Chrome использует тот же механизм визуализации в качестве Safari. Таким образом, если это работает в Safari, это должно работать точно то же в Chrome.

См. это сообщение на блоге Matt Cutts.

Google Chrome использует WebKit для рендеринга, который является тем же механизмом визуализации как браузер Safari Apple, поэтому если Ваш сайт совместим с Safari, он должен работать отлично в Chrome.

Обновление: Похож это - теперь устаревшая информация. См. комментарий Vox к этому ответу.

1
ответ дан 3 December 2019 в 14:19
поделиться

Если Вашим очень высшим приоритетом является точно последовательная презентация всех браузеров, перечисленных без несоизмеримостей, необходимо, вероятно, смотреть на AS3 и Flex.

0
ответ дан 3 December 2019 в 14:19
поделиться

Лично, я использую Mootools в качестве простой легкой платформы JavaScript. Это просто в использовании и поддерживает все браузеры выше (кроме Chrome, но это, кажется, работает также насколько я могу сказать).

Кроме того, для обеспечения непротиворечивости через браузеры я получаю функцию/стиль/поведение/и т.д. для работы в одном браузере сначала (обычно Firefox 3 с поджигателем) затем сразу проверьте, чтобы удостовериться, что он работает во всех других браузерах (оставляющий IE6 для последнего). Если это не делает, я inveset время для фиксации его сразу же, потому что иначе я знаю, что не буду иметь время спустя (по моему опыту, получая вещи работать, перекрестный браузер берет приблизительно 50% моего dev. времени ;-))

0
ответ дан 3 December 2019 в 14:19
поделиться

При проверке JavaScript с "пользой части" + браузер на JsLint.com делает его менее вероятно, чтобы иметь JavaScripts, ведущий себя по-другому в FF, Safari и т.д.

Иначе - использование стандартов и проверка Вашего кода, а также построение на существующих методах как jQuery должны заставить Ваш сайт вести себя то же во всех браузерах кроме IE - и нет никакого волшебного рецепта для IE - это - просто ошибки везде...

0
ответ дан 3 December 2019 в 14:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: