2013-08-07 2 views
0

У меня есть веб-страница, которая загружает большое количество предварительных файлов, прежде чем показывать полезный контент пользователям. Иногда это может занять от 5 до 10 секунд при стандартном подключении, и это может очень расстраивать ожидания пользователей. Это один файл, который занимает 90% времени для загрузки, поэтому я хочу что-то сделать.Как использовать кеширование для ускорения загрузки? (с использованием метода GET)

Я прочел про кеширование ... возможно ли кэширование данных этого файла, чтобы его можно было загружать мгновенно в следующий раз?

URL, это получение информации из выглядит следующим образом: getData.php ID = A5324DFJK4

Эти данные быть получены с помощью вызова AJAX, который возвращает данные XML (затем разобрано приложение). Причина, по которой я использовал GET, - это сделать так, чтобы конкретный идентификатор можно было кэшировать (я надеюсь, что я прав в этом, контент зависит от ID, поэтому я думал, что кеширование будет иметь смысл).

Фактическая платформа, в которой будет выполняться кеширование кода, будет выполнена на мобильном телефоне, я использую PhoneGap для создания приложения, когда оно закончено. Если бы кто-нибудь мог просветить меня о том, как я могу использовать кеширование, чтобы улучшить ситуацию, я бы очень признателен.

Спасибо!

ответ

1

Вы правы, что браузер будет кэшировать страницы для каждого отдельного ID. Вам нужно рассказать браузеру, как долго вы хотите кэшировать эти данные. Как вы уже сказали, это XML, он может быть включен в заголовки XML, которые вы печатаете прямо сейчас в сценарии getData.php.

т.д .:

header('Expires: ' . gmdate('D, d M Y H:i:s', strtotime('+2 days')) . ' GMT'); 
header("Content-type: text/xml"); 
header("Pragma: cache"); 
+0

Спасибо за ваш ответ. Это, безусловно, похоже на хороший способ сделать что-то ... есть ли какой-либо простой способ кэширования содержимого при первой загрузке, а затем каждый раз проверять, изменилось ли оно (если оно изменилось, загрузило и кешировало новые данные, если оно не просто использует кешированный файл)? – jskidd3

+0

Вы не можете иметь этот торт и съесть его, но спросите себя, почему вы хотите его в первую очередь. getData.php? id = A5324DFJK4 подразумевает, что это очень специфический ресурс с идентификатором A5324DFJK4, почему он был бы релевантен в какое время он был бы извлечен? Если это так важно - зачем его кешировать? – Spork

+0

Единственный другой способ, которым я мог подумать, - сравнить текущее время с файлом filemtime() вашего файла getData.php, и если он попадает в течение X времени, установленного для кеша, тогда отправьте заголовок («Истекает: Сб, 26 Июль 1997 года 05:00:00 GMT "); // Прошлое. Однако это сделает запросы _all_ непокрытыми в течение этого таймфрейма. – Spork

1

Можете ли вы обрабатывать данные дальше на сервере и кэшировать его там? Существует не так много, чтобы пойти с описанием проблемы.

Пример кэширования на что-то создано с PHP http://www.php.net/manual/en/function.header.php#61903

Смежные вопросы