четверг, 6 июня 2013 г.

Время жизни


Сколько приходилось сталкиваться с веб-мастерами, у всех одна болезнь - не настраивают время жизни документа. То ли руки не доходят, то ли не знают такую возможность. В результате браузер повторно забирает с сервера статические данные (изображения, стили ...) вместо того, чтобы взять их из локального кэша. Конечно, с распространением скоростных технологий с безлимитным тарифом, актуальность данной настройки снижается. Но так обстоят дела далеко не у всех (у веб-мастеров похоже, что так).
Попробуй объяснить пользователю с мобильником и GPRS, что тебе лень было сделать пару кликов мышью - его дохлое соединение постоянно прокачивает маленькую пиктограмму "/Lib/images/history.gif" размером в полтора килобайта.
Возможно, в результате массового игнорирования данной настройки, браузеры "научились" угадывать валидность по определённым алгоритмам, основанным на косвенной информации. Они ведь должны быть "турбо". Между тем, проблема решается парой кликов в IIS и двумя строчками в Apache. Лучше дать браузеру реальную информацию. Как ты уже понял, эту лёгкую задачу придётся решить и тебе, если ты эксплуатируешь АС-Библиотека-3 с WWW-шлюзом.
Итак, открываем оснастку "Диспетчер служб IIS", проходим по веткам и выделяем папку "Имя компьютера\сайты\Default Web Site\Lib" (виртуальный каталог или приложение WWW-шлюза, если установка не стандартная нужно изменить)



Выбираем элемент "Заголовки ответов" и жмём "Настроить стандартные заголовки ответов..."



,настраиваем параметры


Думаю, здесь всё понятно - через полгода (для примера, реальный срок выбери на основе своих соображений) браузер клиента обновит статические элементы. А они, скорее всего, будут теми же. Хотя кое-что надо бы изменить сразу - поменять логотип ИАНСа на свой, своей библиотеки (ещё ни разу не видел, чтобы кто-то сделал это!!!). Иначе клиенты начинают тупить по поводу - в чей каталог они попали? Просто отредактируй или создай новый файл Help_head.jpg с теми же размерами. После этого, ты вряд ли что-то будешь здесь менять. Конечно, скорее всего браузер выбросит эти файлы из кэша раньше, когда его размер достигнет предела и наши файлы окажутся самыми "старыми".
Настройка повлияет на содержимое заголовков HTTP только для статических файлов. Динамический контент, тот, что генерируется ISAPI расширением Ewww.dll, останется тем же. Проверим это с помощью Fiddler. Вот трассировка загрузки


динамический


статический - таблица стилей (здесь max-age в секундах),


статический - изображение JPEG.

И напоследок одна забавная плюшка. Если в качестве браузера использовать IE любой версии и в настройках "Сервис\Свойства обозревателя\История просмотра\Параметры" указать "Проверять наличие обновления сохранённых страниц: никогда" (чем иногда пользуются некоторые умники вроде меня, для сокращения объёма трафика)


то никогда ничего не будет найдено, даже если оно есть! Проверь сам. Секрет в том, что сайт построен на фреймах и фрейм результата не обновляется. Если его обновить принудительно (только через контекстное меню на пустом поле таблицы результатов поиска), то всё "найдётся". Теоретически это можно исправить - надо перехватить инициативу на сервере и вставить обработчик события, принудительно обновляющий фрейм. Но выглядеть это будет весьма коряво, да и процент пользователей попадающих под данный баг невелик. Думаю, лучше дождаться официального исправления. На этом всё. Как всегда комментируй, или пиши на acbib3@yandex.ru