Opera. За что её не любят разработчики?
В принципе всё сказано в названии темы. За что многие разработчики не любят Opera? Где она не следует стандартам? html, css, javascript?
Каждый отзыв будет ценен. Отдельно хотелось бы попросить высказаться Андрея Новикова[досье], Владимира Паланта[досье], Андрея Брайнина[досье], Сергея Круглова[досье], Евгения Петрова[досье].
Да, больная тема...
Дело не в том, что Opera не следует стандартам. У нее очень обширная поддержка всякой всячины, не хуже остальных браузеров (IE браузером не считать). Только толку от этого мало. Чем больше имею дело с Оперой, тем больше мне кажется, что реализуют эту поддержку спустя рукава, в большой спешке, для галочки. В результате выходят очень сырые версии, с глюками в самых неожиданных местах, причем у каждой отдельной версии свой собственный уникальный набор глюков. С Gecko мне достаточно все отладить в Firefox 1.5, а потом на всякий случай посмотреть на результат в Mozilla 1.7 — и всё, этого достаточно, во всех остальных версиях проблем тоже не будет. С Оперой приходится на совесть тестировать в каждой отдельной версии — 8.50, 8.51, 8.52, 8.53, и это если даже не поддерживать старые версии (лично у меня просто столько времени нет).
Примеров множество. К примеру Opera 7.20 начала идентифицировать себя как браузер, поддерживающий XHTML. То, что глюков на этой стадии была масса, а JavaScript в XHTML вообще не поддерживался — никого не волновало. Делалось все равно для галочки, а не для того, чтобы XHTML можно было реально использовать. С версии 8.0 поддержка XHTML стала сносной. Но стоило мне чуть копнуть — оказалось, что поддержка CDATA-блоков и в актуальных версиях минимальная, правильно работает только при самом стандартном использовании (отослал три баг-репорта, пока что ничего не исправлено).
Другой пример: XMLHttpRequest, поддержка появилась в Opera 8.0. Появилась только из-за GMail, который при всей своей популярности не работал в Opera — многолетние просьбы веб-разработчиков тут роли не играли. Соответственно и реализация была заточена под тот же GMail. Метод POST поддерживался — номинально. Просто установить правильно заголовок Content-Type для запроса было нельзя, соответственно пользоваться этим без извращений было опять невозможно. В версии 8.01 появилась возможность менять заголовки запроса, но лучше не стало — теперь в запросе получалось два заголовка Content-Type. И только с версии 8.02 можно нормально использовать POST с XMLHttpRequest. И тут ведь нельзя свалить вину на недостаточную стандартизацию XMLHttpRequest, речь о самых базовых функциях.
О том, что в Opera 8.0 внезапно пропала поддержка 204 No Content, я уже и говорить не хочу. И ведь разработчикам сообщили о глюке за год до выхода этой версии — а исправили все равно почему-то только в Opera 8.01. Чтобы новую версию того же Mozilla Firefox выпустили, зная, что в ней сломана базовая поддержка HTTP — я себе такого даже представить не могу.
Я смотрю, как фанаты Opera радуются, что в Opera 9.0 будет полностью переписан CSS-движок. Вот только повода для радости не вижу. А кто гарантирует, что новый движок будет лучше старого — пусть кривоватого, но отлаженного? См. Things You Should Never Do, Part I. Опять же, что мы должны думать о качестве кода Opera, если там в каждой версии приходится что-то переписывать заново?
Смущает и направление, в котором двигается Opera. Заинтересованности в солидной поддержке стандартов не замечается, см. выше. Предпочтение отдается новым фичам, а не исправлению существующих. При этом разработчики часто ориентируются на частные случаи (GMail, Acid2).
Написать можно еще много — может позже.
Написать можно еще много — может позже.
Буду весьма признателен.
Прошу тех, кто может аргументированно дополнить Владимира, а не просто крикнуть "Фу", высказываться.
Вот, пожалуйста, пара недавних примеров.
- Апплеты. Как ни добавь апплет на страницу - что через <applet...>, что через комбинацию object/embed, при отсутствии JVM Opera весело рисует маленький прямоугольник с надписью "Java a" (наверно, начало "applet") - кстати, игнорируя мои атрибуты width/height. Вообще-то, если броузер не может предложить ничего лучшего, то при отсутствии Java должен показываться альтернативный текст - любой html внутри тега <applet...>...</applet> или <object...>...</object>, отличный от тега <param...>. Opera это игнорирует и вообще ничего не предлагает - ни скачать JRE, ни хотя бы пойти на страницу, указанную в параметре pluginspage тега <embed...>. Щелкать по прямоугольнику "Java a" тоже бесполезно.
С апплетами и в других отношениях Opera идет своим путем. Скажем, navigator.javaEnabled() - только в Opera при отсутствии JVM эта функция всегда возвращает false, даже когда флажок в настройках установлен. Но тут, наверно, грех жаловаться - FireFox в этой же ситуации ведет себя нестабильно (функция возвращает то true, то false).
А в целом, действительно, в более ранних версиях Opera я нередко сталкивался с признаками "сырого кода". Так, Opera 3.61 очень забавно поддерживала JavaScript: все переменные в функциях были всегда глобальными!
Лично мне Опера не нравится выскакивающими такими глюками, которые непонятно с какой стороны подходить исправлять вообще...
Повторю за Владимиром, но принцип "новая версия - новые глюки" довольно утомляет. Было у меня разок, что в 7.5 сайт выглядит нормально, в 8.5 абсолютно спозиционированный блок внутри ячейки таблицы уехал куда ему заблагорассудилось, в 9-превью - все опять нормально.
Насчет скриптов не знаю, а вот в плане верстки Опера нравится мне больше IE c его вечными глюками, пропадающими блоками и 3px gap. Под старые версии Оперы не проверяю, руководствуясь тем, что ее пользователи люди довольно продвинутые и быстро обновляют свой браузер.
Насчет обратной совместимости FF Владимир все-таки лукавит немного. У меня был случай когда контейнер с display: inline-block нормально показывался в 1.06 и ломал верстку в 1.5.
Сергей Круглов[досье]
Да, с этим согласен. Глюки, которые выскакивают в Opera, поражают своей нелогичностью. Если мне попадается глюк в Gecko или в IE, то, как правило, легко понять, что же именно разработчики сделали неправильно. Понимание проблемы — первый шаг к ее решению. С Opera дело обстоит иначе. Очень часто дополнительные эксперименты выявляют абсолютно непонятное поведение. Непонятное в том смысле, что сложно себе даже представить код, который бы такое поведение вызывал. Как будто бы Opera целиком построенна на абсолютно нестандартных подходах.
Кстати о нестандартных подходах — с этим в последнее время вроде стало получше, но разработчики Opera очень любят изобретать колесо. См. радикальный подход к кешированию — по умолчанию Opera всё кеширует 5 часов. Это неплохой маркетинговый ход (кампания "Opera — самый быстрый браузер мира" была построена не в последнюю очередь на этой фиче), но проблем это вызывает немерянно. Той же цели "ускорения" служит и отображение страниц до полной загрузки CSS-файлов (на Xpoint из-за этого есть специальный внешний вид для Оперы, состоящий из одного CSS-файла, иначе регулярно какой-нибудь из файлов не применяется). Ну и сохранение всего состояния страницы в памяти, чтобы к ней можно было быстро вернуться. В Firefox 1.5 та же фича теперь тоже есть, но ее основательно продумали, чтобы не возникло проблем с разработкой скриптов (см. Using Firefox 1.5 caching) — разработчиков Оперы же заботила только видимость быстрой работы браузера. Не забудем и горячо любимый разработчиками MDI-интерфейс Оперы, делающий правильное позиционирование popup-окон почти невозможным (позиционирование ведь происходит относительно MDI-окна, а как-то дать скриптам доступ к параметрам этого окна никто не позаботился).
У меня создалось впечатление, что разработчики Оперы наконец отказались от идеи-фикс самого быстрого браузера. В конечном счете самым важным фактором для скорости отображения страницы является связь с веб-сервером, на которую браузер повлиять почти не может — а если как-то и может, то вызывает при этом целый ряд проблем. Вроде бы разработчики это поняли, а продолжающиеся завывания о самом быстром браузере мира исходят уже только от фанатов.
fetis[досье]
Gecko не поддерживает inline-block и обратного никто никогда не утверждал. Насчет Opera речь только о функциональности, которая официально поддерживается.
Факт в том, что у меня с кешированием в Опере проблемы возникают только на xpoint. На том же phpclub все кэшируется нормально. Тему уже поднимали: Браузер кэширует страницы .
phpclub last-modified не выдает, а выдает только expires на 1970 год.
p.s. хотя у меня "база знаний" в мозилле кэшируется все время, приходится F5 нажимать. Но там Expires на месяц вперед.
Речь об установках по умолчанию. Подавляющее большинство сайтов не выдает никаких заголовков касательно кеширования, у браузера должно быть осмысленное значение по умолчанию. Кешировать страницы без Last-Modified на пять часов — бред, кроме Оперы такого ни один браузер не делает. И то, что это не противоречит никаким стандартам — не извинение. Если мой "браузер" на любой запрос будет показывать "Server not found", то это тоже не будет противоречить стандартам, но полезность такого "браузера" равна нулю.
Зато такая модель кеширования позволяет перемещаться по страницам а) экономя трафик; б) даже после обрыва соединения; в) субъективно быстрее.
На поле поддержки стандартов FF скорее всего обгоняет Оперу (я так понимаю, IE мы даже в расчет не берем), но в остальном она с ним может потягаться.
Поддержка стандартов - это все хорошо. Но это как коммунизм - вроде на словах все хорошо, а жить не получается.
off: В опере как-нить можно отключить хранимые куки и не отключать сеансовые?
Preferences / Advanced / Cookied / Delete new cookies when exiting Opera
Сергей Круглов[досье]
> phpclub last-modified не выдает, а выдает только expires на 1970 год.
при чем тут last-modified ?
> p.s. хотя у меня "база знаний" в мозилле кэшируется все время,
> приходится F5 нажимать. Но там Expires на месяц вперед.
еще один пример того, что выдача заголовков у вас написана спустя рукава
Владимир Палант[досье]
> Речь об установках по умолчанию. Подавляющее большинство сайтов
> не выдает никаких заголовков касательно кеширования,
Это статичные страницы, для них и должно быть большое кэширование.
> у браузера должно быть осмысленное значение по умолчанию.
оно осмысленное, ИМХО. Впрочем, это не имеет никакого значения для разработчиков динамических страниц, их дело - правильно управлять кэшированием. А как пользователь - можете настроить значение под себя, для того оно и существует.
> Кешировать страницы без Last-Modified на пять часов — бред,
Конечно бред, ведь ласт-модифед не управляет кэшированием %=))
> кроме Оперы такого ни один браузер не делает.
ну при чем тут другие браузеры? Если ориентироваться на стандарты де-факто, а не на rfc, то надо все браузеры на поведение ИЕ затачивать. Лично я такого не хочу.
с остальным согласен - Опера чаще падает, больше косяков с отображением контента имеет. Но как пользователя, она меня в целом устраивает. Удобнее она как-то, эргономичнее чтоли.
А главное, пожалуй, - быстрая. И тут не скорость загрузки страниц имеется ввиду - тут как раз преимущество минимальное. Сам интерфейс быстрый, переключение между вкладками - почти мгновенный (зажать правую кнопку мышки и перемещаться скролом).
У фокса мне нравится идея расширений. Да и в целом браузер он хороший, просто пока сыроватый еще, ИМХО. Я уверен, что фокс в нудалеком будущем сделает Оперу почти по всем показателям (почти, потому что по скорости, размеру и занимемой памяти ему будет сложно тягатья с ней из-за XULа), и вот тогда я с удовольствием на него пересяду.
-
А веб-разработчики, ИМХО, должны делать сайты так, чтобы они нормально работали во всех современных браузерах не зависимо от того, любят они их или не любят. Если только сам проект не накладывает каких-то определенных требований (типа gmail, внутрикорпоративный сайт и т.д.)
13.3.1 Last-Modified Dates
The Last-Modified entity-header field value is often used as a cache
validator. In simple terms, a cache entry is considered to be valid
if the entity has not been modified since the Last-Modified value.
...
HTTP/1.1 clients:
- If only a Last-Modified value has been provided by the origin
server, SHOULD use that value in non-subrange cache-conditional
requests (using If-Modified-Since).
А веб-разработчики, ИМХО, должны делать сайты так, чтобы они нормально работали во всех современных браузерах
Сайты надо делать так, чтобы затраты на разработку и поддержку не превышали дополнительных доходов от расширения аудитории.
> 13.3.1 Last-Modified Dates
>
> The Last-Modified entity-header field value is often used as a cache
> validator. In simple terms, a cache entry is considered to be valid
> if the entity has not been modified since the Last-Modified value.
Что такое кэш-валидатор прочитайте внимательней. Это не управление кэшем и присутствие этого заголовка не означает обязательного запроса к серверу, если этот объект уже есть в кэше. Кстати говоря, апач выдает этот хидер на все статичные объекты.
> Сайты надо делать так, чтобы затраты на разработку и поддержку
> не превышали дополнительных доходов от расширения аудитории.
да, но это не отменяет моей фразы. Даже xpoint.ru нормально отображается и в Опере. Если только предположить, что сделать правильное кэширование (т.е. потратить на это 5 минут) будет стоить вам дороже, чем могут принести те 4-5 процентов, которые пользуются оперой...
Владимир Палант[досье]
> Я смотрю, как фанаты Opera радуются, что в Opera 9.0 будет
> полностью переписан CSS-движок.
откуда информация, можно узнать? Может вы с ИЕ7 перепутали? В опере9 врое как только движок рендеринга будет переписан...
> In simple terms, a cache entry is considered to be valid
> if the entity has not been modified since the Last-Modified value.
Проще говоря, запись в кэше полагается валидной, если ресурс не изменялся с момента Last-Modified.
А как узнать, изменялся ли ресурс с момента Last-Modified, кроме как делать обращение к серверу?
Правда, что означает Expires на месяц вперед в заголовках xpoint, я сам не очень понимаю...
Константин[досье]
Нашел первоисточник информации: http://my.opera.com/olli/blog/show.dml/22674
Как минимум в Mozilla "layout engine" в первую очередь обозначает отображение CSS. Парсинг CSS я не имел в виду, разумеется.
Сергей Круглов[досье]
Документы базы знаний как раз должны кешироваться. Если они меняются, то меняется ссылка на них.
Сергей Круглов[досье]
> А как узнать, изменялся ли ресурс с момента Last-Modified,
> кроме как делать обращение к серверу?
Это вы уже занимаетесь додумыванием того, что не написано.
Повторяю, апач выдает этот хидер для всех статичных объектов (html, картинки, css и т.д.) - неужели не настораживает?
Владимир Палант[досье]
> Как минимум в Mozilla "layout engine" в первую очередь обозначает
> отображение CSS. Парсинг CSS я не имел в виду, разумеется.
понятно.
Повторяю, я не говорил о ресурсах, которые выдают заголовок Last-Modified — все браузеры понимают его, как приглашение к кешированию, это нормально. Но Опера по умолчанию кеширует на пять часов и ресурсы, которые этот заголовок не выдают, то есть вывод всевозможных скриптов (мало кто в скриптах специально прописывает заголовки против кеширования). А вот это уже — полнейший бред.
Владимир Палант[досье]
Понятно. Об этом я не подумал. А как на этот Last-Modified реагируют прокси-серверы?
PS. Опера не кэширует страницу, если в УРЛ есть параметры (т.е. ?vars).
Владимир Палант[досье] А мне кажется, вы чересчур резко осуждаете Opera. Вы говорите с позиций грамотного пользователя, который смотрит на грамотный сайт. Но 99% ситуаций в мире совсем другие - человек, абсолютно не разбирающийся в Internet (и лишь с вероятностью порядка 10% знающий английский, если брать всю планету), смотрит на сайт, сделанный "чайником", смутно представляющим себе, что такое Web. Разве не так?
В этой ситуации очень часто бывает, что автор сайта использовал что-нибудь вроде SSI или движка форума, блокирующее выдачу Last-Modified. И, конечно, не позаботился, чтобы Last-Modified все же правильно формировался. Хуже того, не позаботился (не подозревал о существовании) о gzip, хуже того, выдает чудовищные страницы. (Я знаю минимум один форум, причем сделанный не такими уж "чайниками", в котором типичная страница весит до полумегабайта и, разумеется, кэширование не работает.) Так чем же плохи старания разработчиков Opera минимизировать время и трафик посетителя такого сайта?
Да, возможно "странное поведение" страницы. Но если сайт сделан криво, он наверняка и в других отношениях будет вести себя криво. Нормально сделанный сайт явно запретит кэширование, если оно мешает логике работы. При этом, "странное поведение" ведь не приводит к явным ошибкам! Информацию, опубликованную на сайте, увидеть можно (если не нажимать "обновить", то с максимальным отставанием на 5 часов). Свое сообщение отправить можно, пусть даже сразу ты его не увидишь. Зато миллионы несведующих русских, китайцев, индийцев и прочих пользователей с дорогим и медленным трафиком радуются быстрому и экономному броузеру.
А для грамотных пользователей, вроде бы, нет проблем перенастроить Opera.
Даниил, у Оперы нет настойки "всегда проверять страницу на обновления, когда это нужно бы сделать". Я могу либо установить, чтобы она кешировала всё на 5 часов (или другой интервал времени) — либо чтобы не кешировала совсем, но опять же всё. Меня, как "граммотного пользователя" со сравнительно неплохим интернетом (что еще далеко не причина полностью отказываться от кеширования) не устраивает ни одна установка. Кстати, теперешняя ситуация — уже прогресс, более старые версии Оперы я мог заставить перезагрузить страницу только очисткой кеша.
Но мы ведь здесь не пользователей обсуждаем, правда? Речь о разработчиках. "Старания разработчиков Оперы" плохи тем, что они всегда пытаются изобрести колесо, и при этом недостаточно продумывают последствия. И документацией они тоже не особо озабочиваются, список "поддерживаемых" стандартов их вполне устраивает. В результате веб-разработчикам приходится разрабатывать всё сначала для всех браузеров, а потом еще подгонять под Оперу методом проб и ошибок.
Владимир Палант[досье]
Я могу либо установить, чтобы она кешировала всё на 5 часов (или другой интервал времени) — либо чтобы не кешировала совсем, но опять же всё
Правда, что ли? Специально не разбирался, мне казалось, что "Always" для "Check documents" - то, что нужно. Если в варианте "Always" Opera не кэширует даже документы с правильным Last-Modified, это, конечно, ошибка и нарушение стандарта.
Повторюсь, Opera, насколько я понимаю, разрабатывалась не для "граммотных пользователей со сравнительно неплохим интернетом". А для людей со слабыми компьютерами и каналами, как правило, совершенно не "грамотных" в Internet-технологиях. Т.е., собственно говоря, для большинства пользователей :) Что до грамотных разработчиков... Может быть, не так уж важно гарантировать стопроцентно качественную поддержку Opera? Раз уж сами авторы броузера создают проблемы. Ну, будет глючить сайт немного - если он следует стандартам и совместим с MSIE/FireFox, то это проблема Opera, а не разработчика сайта.
Бывает, конечно, что глючит не "немного", а все намертво виснет - я как раз писал об этом. Это уже плохо.
Даниэль Алиевский[досье]
В варианте "Always" Opera все кэширует. Просто она всегда посылает запрос к серверу с заголовком If-Modified-Since, а сервер ей отдает уже либо новую страницу либо ответ "304 Not Modified".
Да и стандарты Опера поддерживает нормально (по крайней мере в обсуждаемом случае с кэшированием). А ситуация с Last-Modified, это просто хак для вэб-разработчиков, которые не знают что такое кэширование (т.е. не соблюдают стандарты). В опере тоже есть такой хак (УРЛ с параметром), но менее элегантный и грубый, и в результате огребает проблемы на некоторых сайтах. Но стандарты в данном случае она не нарушает. Я правильно понимаю, Владимир Палант[досье] ??
Владимир, если верить Константину (сам не проверил, хотя изначально был уверен, что так и должно быть), то выходит, что вы не правы: "Я могу либо установить, чтобы она кешировала всё на 5 часов (или другой интервал времени) — либо чтобы не кешировала совсем, но опять же всё"
Почему не поставить Always для документов (не картинок)? Один тривиальный запрос к серверу - это копейки.
Кстати о кэшировании. Когда я перешел на FireFox с MSIE, у меня возникло ощущение (и до сих пор не исчезло), что FireFox кэширует слишком мало. Может, где-то оно и надежнее (на особо кривых сайтах), но у меня это не раз вызывало конкретную проблему. Обычно у меня открыта куча разных сайтов. Но - увы мне - хоть и редко, но случается, что связь обрывается из-за проблем у провайдера. Чаще всего не очень надолго, несколько часов. И в этой ситуации, как правило, я просто не могу нажать Back и посмотреть предыдущие страницы из history. А также не могу включить "Work Offline" и смело закрыть броузер, с тем чтобы потом посмотреть те же страницы из кэша. В MSIE меня "Work Offline" в таких ситуациях спасал - как правило, все, что я читал сегодня, я мог открыть даже при отсутствии связи.
То, что FireFox частенько перезагружает страницу по кнопке Back, меня вообще раздражает. Надеешься, что оно появится мгновенно, ан нет - вовсе не всегда. Мне вообще сложно представить себе ситуацию, когда по кнопке Back необходимо обратиться к серверу и предпринять что-то другое, кроме того, что я интуитивно ожидаю - увидеть страницу, которую я видел только что. По кнопке Back, пожалуй, можно даже игнорировать запреты кэширования, кроме разве что нулевого Expires (и то не уверен). Из-за этой "правильности" FireFox я завел привычку почти всегда открывать новые ссылки в новых закладках - уж если страница открыта, к счастью, ни один броузер не пытается ее перезагружать.
В общем, я согласен, что формальное соблюдение стандартов еще не делает броузер хорошим, более того, иногда нарушение стандарта может быть оправдано. Но конкретно в вопросе кэширования мне подход Opera импонирует. Подумаю, подумаю да и перейду на нее :) Хотя и мой канал, и мой компьютер вряд не можно назвать "плохими".
Вышла Opera 9.0 Beta. Вроде бета - это когда все готово на наш взгляд - народ, посмотрите, может что вы увидите...
Скачал. Решил потестировать.
Визуальный редактор (designMode) позволяет вставлять абзацы, заголовки и ссылки бесконечной вложенности (<p><p><p>...</p></p></p>, <a href="a"><a href="b">..</a></a>)
Одиночные теши вставляются с /> в конце (т.е. вроде как для соответствия xhtml), но само название тега - в большом регистре.
Вставленные картинки нельзя перетаскивать мышкой.
Абзацы нельзя превратить в список.
После insertImage редактор выходит из designMode.
Тут у меня терпение иссякло, на поддержку в очередной раз забиваю, по крайней мере до выхода "не беты".
Глюки оперы, на котрые наталкивался:
- Потдержка XSLT, в ослике и лисенке, она есть, опера XSLT вообще не признает
- Ставишь в css для body, background (если версать div'но), а потом пытаешься в версии для печати поставить background: none опера 8, не понимает, и выводит упорно background
- При дивной верстке разметка в 3 колонки, размерами 25% 50% 25%, опера 8 упорно делает 25% 50% 25%+1px , т.е. 1 на один пиксел больше, ослик и лисенок делают верно
Это только некоторые из глюков, с которыми сталкивался, радует только одно, по статистике лисенком в мире пользуются больше людей чем оперой (в России все наоборот), глядишь опера и вообще загнется.
- Справедливости ради — это не глюк, а отсутствие фичи (причем фичи для браузера опциональной). Поддержка XSLT будет в Opera 9.0, вот тогда уже пойдут глюки — и я уверен, что немало.
- У вас никода в ИЕ не разлеталась верстка из-за того, что он что-то там недосчитал, когда окно браузера полностью не распахнуто? Поэтому не надо про 25-50-25 и отличное отображение в ИЕ.
> В Firefox 1.5 та же фича теперь тоже есть, но ее основательно продумали, чтобы не возникло проблем с разработкой скриптов (см. Using Firefox 1.5 caching) — разработчиков Оперы же заботила только видимость быстрой работы браузера.
Давно пользуюсь Оперой и пишу на JavaScript, никогда не возникало проблем со скриптами и back/forward. В каком состоянии ты ушёл со страницы, в таком на неё back'ом и вернёшься. Ничего не перерисутся, ничего не сбросится. В FF 1.5 наткнулся на проблему, нашёл эту статью и только для FF написал window.onpageshow. Вводить новые события, когда этого можно не делать (опыт back/forward в опере это показывает) это правильный метод, ага.
Насчёт стабильности Gecko-движка и глюков в опере:
https://bugzilla.mozilla.org/show_bug.cgi?id=338551
https://bugzilla.mozilla.org/show_bug.cgi?id=338554
Второй баг весьма мешает жить.
Vitaly Harisov[досье]
Глюки есть везде, об этом не спорим. Вопрос лишь — насколько часто, насколько серьезны последствия, и как быстро/корректно их исправляют.
Разница между Opera и Firefox в смысле back/forward как раз в том, что когда у вас возникли проблемы — вы нашли документацию и способ с ними справиться. Когда у меня были очень серьезные проблемы с back/forward в Опере, я не нашел ничего. Конечно, сейчас эта фича в Опере уже не новая, и может быть больше не глючит (не могу судить, давно не писал приложения, где это было бы важно) — но в промежутке на разработчиков наплевали. Аналогичная ситуация была с XHTML в Opera 7.20. И раздражает именно эта тенденция выпускать сырые фичи, с которыми потом приходится бороться.
Что касается ваших багов — по поводу первого вы вряд ли можете жаловаться, все-таки фича экспериментальная, и не зря там приставка -moz стоит. Тем более, что применение стилей к таблицам очень и очень нетривиально. Вот когда приставку уберут и назовут свойство box-sizing — тогда можно будет рассчитывать на полное соответствие стандартам.
Ну а второй — это не баг. Я написал вам там объяснение, просто у тегов TABLE и TD есть стили по умолчанию (для обратной совместимости), а у DIV'ов — нет. Если вы стоите таблицу на DIV'ах, то должны и стандартные стили продублировать, если хотите идентичного отображения.
box-sizing — это CSS3 box model, пока что "working draft". Меня не удивит, если разработчики Gecko ждут, чтобы составители стандарта разобрались, как именно должно работать это свойство в нестандартных ситуациях.
![[logo]](/site/images/logo.jpg)