Насколько могут влиять разные операционные системы на отображение веб-страниц? - PullRequest
5 голосов
/ 25 марта 2012

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

Есть ли реальная разница в том, что обрабатывается, скажем, IE6 в разных версиях Windows? Или точно такая же версия Firefox в Ubuntu, в отличие от Mac?

Это может быть нубский вопрос, но мне действительно любопытно.

Ответы [ 3 ]

7 голосов
/ 25 марта 2012

Существуют 4 категории ошибок между операционными системами, которые могут возникать на веб-сайте (непреднамеренно; игнорирование таких вещей, как веб-разработчик, сниффинг пользовательского агента и использование неопознанных результатов, или использование плагина, который может работать только на одной платформе, например, как Silverlight). Заказано в порядке от наиболее распространенных до наименее распространенных, из моего личного опыта

  1. Допущения о шрифтах и ​​кернинге - Если операционная система пользователя не соответствует вашей, и вы указываете шрифт, который у вашей системы есть, а у его - нет, текст не будет иметь точно такую ​​же длину и, возможно, высоту, даже при указании определенного размера точки (строчная буква «м» должна совпадать, но все другие символы могут отличаться, как высота прописных букв). Это может нанести ущерб разметкам фиксированного размера, особенно с заголовками, длина которых ожидается всего одна строка. В последнее время это можно смягчить, купив «веб-шрифт» (обычно в него входит старый IE и новый современный стандартный веб-шрифт) и используя его в вашем CSS, размещая шрифт для загрузки пользователем. Это может привести к появлению «флэш», так как рендеринг переключается на него после загрузки, поэтому вам определенно необходимо указать длительное время кэширования.
  2. Допущения об элементах формы - Поскольку эти элементы HTML создаются операционной системой напрямую, а не браузером, даже для одного и того же браузера они могут выглядеть по-разному, иметь разные размеры и поведение между операционные системы. Стилизация этих элементов уменьшает изменчивость, но некоторые элементы формы (например, <input type="file">) не могут быть стилизованы. Просто дайте им большой буфер в вашем макете.
  3. Багги плагины - Даже если плагин существует во всех операционных системах, таких как Flash, обычно он лучше всего работает в Windows, а затем Linux и Mac борются с ним за второе место (обычно больше усилий вкладывается в порт Mac, но в Linux могут быть руководства Wiki, чтобы заставить его работать лучше, и упаковщики дистрибутивов могут использовать эти приемы при автоматической установке плагина для вас). Единственное решение, которое я знаю, - если вы разработчик Windows, иметь образ VirtualBox дистрибутива Linux, такого как Ubuntu или Fedora, на котором вы тестируете свой сайт, и посмотреть, насколько плохо работает плагин, когда вы добавляете все свои колокольчики и свистит, тогда предположим, что у Mac примерно одинаковая производительность.
  4. Фактические ошибки в HTML-рендерере - это может произойти, и по мере того, как темпы разработки браузеров увеличиваются, разрыв между функциональностью и четностью увеличивается между платформами. Как правило, «родная» ОС браузера делает все возможное, после чего следует, какую платформу она использует чаще всего. Я редко вижу регрессии, поэтому, когда что-то работает во всех операционных системах для браузера, оно в основном остается таким. Вы должны сделать что-то действительно особенное, чтобы столкнуться с этим.
1 голос
/ 25 марта 2012

10 лет назад этот ответ был бы оглушительным да.Например, IE5 на Mac был совершенно другой базой кода, чем в Windows, и отображал вещи немного иначе.Но с современными браузерами это, как правило, не так уж и много.

Есть еще небольшие отличия.Например, Safari на Mac (не уверен в FF) выполняет рендеринг с элементами управления в стиле Mac, которые могут иметь разные размеры, границы, размеры шрифта и т. Д. Это может вызвать незначительные проблемы рендеринга между платформами, но, как правило, не о чем беспокоиться.о том, что один пиксель может испортить ваш дизайн.

Шрифты - это еще одна проблема, потому что разные шрифты существуют в разных системах и имеют разные метрики.

Рендеринг JavaScript может быть проблемой между браузерами, но обычно это не одна и та же версия в разных ОС.

Последнее увлечение - аппаратное ускорение, которое может быть разным в разных ОС, но, как правило, просто приводит к разнице в скорости рендеринга.

0 голосов
/ 25 марта 2012

Все зависит от производителя браузера, но, по моему опыту, они довольно близки к одной и той же кроссплатформенной среде, за исключением некоторых элементов пользовательского интерфейса. Ubuntu - это, вероятно, ОС, на которую они обращают меньше всего внимания, и, например, Firefox работает точно так же в Windows и Ubuntu.

Веб-разработка с точки зрения операционной системы, на которой работает ваш сервер, является проблемой и не является кроссплатформенной, когда речь идет о взаимодействии с файловой системой, но это не совсем ваш вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...