Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет dibr ([info]dibr)
@ 2009-01-05 20:51:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
браузерное
     "В браузере должно быть всё прекрасно". Иначе браузер может стать "основным", но не сможет стать "единственным" :-)
     Сегодня сам собой случился небольшой эксперимент. Есть страничка с ~200 "среднего размера" (~300x400) картинок. В силу то-ли тонкости канала, то-ли хилости веб-сервера, то-ли нюансов работы прокси, а может быть и внутренних особенностей браузеров, все 200 картинок с первой попытки полностью не показываются - обязательно будет несколько битых (загруженных не полностью) картинок. А дальше - пытаемся все-таки загрузить все картинки целиком. Имеем...
       - Google Chrome: опции "перезагрузить картинку" нет (собственно, возникает такое ощущение что разработчики хрома вообще люто ненавидят картинки - набор опций для картинок даже не минималистичный, он какой-то нечеловеческий: нет даже "свойств", зато есть "copy image URL"), перезагрузка страницы, в том числе многократная, ничего не даёт;
       - Опера 9.52: для картинок есть опция "reload image", которая в данном случае ровным счетом ничего не делает (и даже не делает вид что что-то делает). Перезагрузка страницы тоже ничего не даёт (кстати, есть у оперы старый глюк, когда она при каких-то условиях делает вид что перегружает страницу, на самом же деле перегружает часть "реквизитов" страницы (img, css), а на саму страницу не делается даже get-запроса). Короче, не работает, даже если нажать reload несколько раз;
       - MSIE7: при начальной загрузке показал половину картинок в виде "икона битой картинки", после первой же перезагрузки страницы - показал полностью все картинки. Умничка, даже не ожидал от "микрософтовской тулзы для рендера html" такой прыти :-)
       - Мозилла 3.0.4: сработало! То есть при первой загрузке было несколько битых (недозагруженных) картинок, но после перезагрузки страницы они дозагрузились. Что не может не радовать - есть хотя бы один браузер (т.е. не MSIE, ибо он не браузер), в котором можно относительно нормально смотреть странички с кучей картинок при нестабильной их загрузке.

     И упреждая "ну сам подумай, откуда браузер знает", "ну он же просто из кеша берет" и "а ты про if-modified-since слышал?", напишу вот что. Размер картинки, не синтезируемой "на лету" скриптом, а спокойно лежащей на диске, известен заранее. Все нормальные (не писаные студентами за пять минут на перле коленке) веб-сервера при отдаче статического контента сообщают этот размер в заголовке ("Content-Length" и "Content-Range"). Поэтому даже если браузер при сбое загрузки по каким-то причинам получил не connection reset (т.е. "соединение оборвалось") а connection closed ("соединение штатно закрыто удаленной стороной", такое возможно, например, если удаленный сервер при обрыве делает соединению не reset а close, или если прокси-сервер не умеет передавать принятый reset с серверной стороны на клиентскую), браузеру всё равно известно, что файл не загружен до конца (поскольку фактический размер принятого файла меньше обещанного в заголовке), и кешировать его в таком виде как бы нежелательно, а уж отказываться перезагружать заведомо битый файл при явной просьбе пользователя - некоторая наглость со стороны браузера. Вызванная скорее всего тем, что размер из заголовка просто не учитывается.
     А ещё у вас в америке негров линчуют хром, видимо по той же причине, иногда спокойно ставит галку "всё классно" на загруженные не до конца файлы. То есть, если прилетел connection reset - то да, "файл загружен не полностью", а если прилетел connection close - то пофиг что из 10 метров загружено всего 2 - соединение же штатно закрыто, значит всё ок :-)

     Как-то так :-)


(Читать комментарии) - (Добавить комментарий)


[info]caspianroach@lj
2009-01-05 19:03 (ссылка)
УМВВР — У Меня Всегда Всё Работает

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]dibr@lj
2009-01-05 19:40 (ссылка)
Это плохо. Значит по закону кармы однажды рванёт так, что мало не покажется...

(Ответить) (Уровень выше)


(Читать комментарии) -