А неродивые девелоперы будут через этот механизм все страницы из сайтмэпа префетчить. Круто же, когда весь сайт летает! То-то пользователи с лимитированным трафиком обрадуются. :)
1. Трудно понять по каким правилам браузер вообще кэширует документы. IE это делает даже если ему явно это делать запретят.
2. То что часто используется на страницах браузер и так закэширует без дополнительных напоминаний.
3. Возможность использовать AJAX множит эту фичу на ноль. На нем можно самому легко написать предзагрузку нужных документов. Не надеясь на браузер.
дело не в самом кэше. это предзагрузка такая. документ загрузится в фоне и поместится в кэш. а когда надо будет его отобразить, он уже возьмётся из кэша.
«то можно заранее подгружать страницу со следующим шагом.»Это врятли, потому что на следущейм шаге вы увидите ошибку о том, что предыдущий ещё не заполнен.
«А неродивые девелоперы будут через этот механизм все страницы из сайтмэпа префетчить.»
Даже не обязательно отключать это в браузере, достаточно сделать какой-то настраеваемый лимит. Тогда по умолчанию можно будет ставить 5 (не больше 5 префетчей на страницу) и пускай девелоперы мучаются решая что важнее.
Есть у меня идея для браузеростроителей! Было бы круто сделать поддержку архивов.
Сейчас что бы загрузить страничку, приходится скачивать 50-100 мелких файликов (картинки, js, css, и т.п...). И что бы решить проблему тормозов верстальщики мучаются со спрайтами, css и js обфускацией, прелоадерами фоновых картинок и т.п...; сисадмины мучаются с «nginx для статики» и вообще очень много заморочек по оптимизации это создаёт.
Было бы круто в браузерах встроить поддержку медиа-архивов и в этот один архив пихать сразу все файлы дизайна (не контент). т.е. как-то так:
Браузер прежде чем скачивать image.jpg должен сначала посмотреть в архив и взять оттуда, если там есть.
Это всё очень кратко описал. Естественно, должны быть ограничения на размер архива и не более одного архива на страницу (что бы нерадивые программисты контент не старались в него запихнуть), ну и ещё много особенностей/нюансов — тема для отдельной статьи, а не для комментария.
Нет. Отдельную версию не нужно, потому что src=«images/logo.png» заставит браузер сначала посмотреть в свой кеш, потом в архив и после уже сделать запрос. В архиве хранятся дублирующие файлы. Это позволит обеспечить совместимость со старыми браузерами.
Перегенерировать — да придётся. Но без архива Вам пришлось бы заного файл обфусцировать. И ещё пришлось бы хранить 2 версии: my.src.js + my.min.js.
И надо в браузерах сделать ограничение по размеру в 200кб. Этого хватит что бы впихнуть все css, js и большинство мелких картинок (уголки, иконки). Т.е. 90% всех файлов занимающих 10% объёма. Если ограничения не будет, то быдлокодеры, могут попытаться запихнуть в файл весь контент да и сайт будет долго грузится.
Я бы ещё сделал ограничение: 1 архив на страницу, что бы уш точно только дизайн был. Конце концов в этом и смысл: сократить кол-во загружаемых файлов.
Wordpress такое уже использует. Подгружает следующий по хронологии пост.
Обнаружил из-за странного поведения счетчика просмотров в одном плагине.
Лечится игнором запросов с HTTP_X_MOZ = prefetch
Вообще это легко делается на js, добавляя скрытые src или iframe после загрузки. Как вариант можно сделать интерфейс для кода, который собственно добавляет нужные ссылки в виде <link rel=«prefetch»… > вместо явного вызова функции js. А уж грузить js или нет можно по агенту…
Зайдя но «index» у пользователя загрузится весь сайт, что не лимитированным и хорошим каналом пользователям очень хорошо, но накладно лимитированным пользователям.
Теперь рекламу просмотрит пользователь даже не захотев этого.
HTML5 Prefetching — Предварительная загрузка документов