LINUX.ORG.RU

Теортический подход

 


0

0

А кешируются ли xmlhttprequest'ы?

Почему не делать так: вместо выдачи html-ленты или другой полнотекстовой блочно-списочной верстки, выдавать простую loader-страницу (которую тоже можно кешировать), а уже эта страница спрашивает у сервера: а чо там щас какая верстка? Он такой: версия 1234. Скрипт сверяет версию верстки — если кешированная не равна, значит тупо все перекачиваем как обычно. Если нет, то поднимает ее с диска и спрашивает дальше: а чо блоки щас чо с блоками? Сервер такой: блоки такие-то, версии такие-то. И тут скрипт понимает, что обновить надо всего три блока — 2 новых и один обновился. Итого пара килобайт вместо десятка-другого. И теперь лента форума и платиновые треды на моем телефоне нормально открываются, даже когда E вместо 3G.

Практикуется ли такой подход, и насколько он может снизить общемировой трафик одного и того же, но по разным смещениям верстки?

И вообще, если скрипт будет не чо-то там где-то там скачивать, а скачает нормальную страницу, по типу http://linux.org.ru/forum/, то она закешируется? Или кешируются только те страницы, которые вручную были скачаны? (ну там по клику или по адресной строке)

Да. Браузеры вообще все кэшируют, опять таки E-tag от сервера, в Ruby on Rails, к примеру, asset pipeline к имени файла с жс/css дописывает дату последней модификации файла. Дата обновилась - браузер качает заного.

anonymous
()

Итого, пара килобайт вместо десятка-другого.

И пять запросов вместо одного. Тормозят то они, а не килобайты.

Траффик ты может и снизишь, но скорость работы от этого только упадёт намного, серверу легче тоже не станет. Ну и тривиальная задача формирования страницы превращается в пляска с передачей запросов туда-обратно, щаблонизацией, версионностью и чёрт знает чем ещё.

А для проверки изменений есть заголовки кстати.

Kalashnikov ★★★
()

И тут скрипт понимает, что обновить надо всего три блока — 2 новых и один обновился.

А что много сейчас хайлоадных сайтов (этож пропозал не для хомяков, верно), на которых большая часть из активно используемого в каждый конкретный момент контента не устареет через несколько часов? Имею в виду ленту вконтакте (тем более, там один черт аякс) или в тублре или твиты в твитторе. Много ли сейчас страниц (не сайтов) в интернете, которые будут просмотрены средним пользователем более чем один (если не полтора) раза?

certanista
()

Читать про conditional get.

dizza ★★★★★
()

Поисковики не нужны, я правильно понимаю? :}

Deleted
()

А кешируются ли xmlhttprequest'ы?

Кешируются, это настраивается.

выдавать простую loader-страницу

Ты только что придумал так называемое «одностраничное приложение». Клиентский MVC, backbone, вот это всё. Верстка грузится статикой и кешируется, гоняются только данные туда-сюда. Можно впихнуть вебсокеты для уведомлений с сервера.

Часто применятся для игр, но там как правило клиент-флешка.

Плюсы - простой бекенд. Минусы - сложный фронтэнд.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.