2014-01-12 2 views
0

Я не знаю, как задать этот вопрос, но я разрабатываю одностраничное приложение (SPA) с помощью nodejs на стороне сервера и всякий раз, когда данные обновляются, пользователь получает информацию, однако, если пользователь обновил, данные json и каждый файл сценария просто исчезают, чтобы получить запрос с сервера снова?ли javascript файлы запрашиваются снова с сервера на странице обновления?

Как я могу предотвратить файлы javascript и, в частности, файл, в котором данные json запрашиваются повторно при обновлении страницы?

есть ли способ решить эту проблему?

+0

Будут обновлены только клиентские вещи, серверные файлы будут делать то, что говорит сервер. –

+0

Вы действительно наблюдали и испытывали проблемы с этим? – JAL

+0

@JAL нет, я просто изучаю и думаю об этом. Я думал, что обновление страницы означает, что все файлы снова запрашиваются. – user1492051

ответ

1

Файлы JavaScript не являются особыми. Так же, как изображения, таблицы стилей и файлы HTML, они запрашиваются при необходимости браузером по необходимости.

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

Вы можете увидеть пример этого на сайте Google Libraries. Если вы запрашиваете определенную версию файла библиотеки (скажем, jQuery 1.10.1), когда ваш веб-консоль открытой вкладки сети, вы увидите, что Google возвращает его с этими заголовками (нерелевантных из них опущен):

Age:   238894 
Cache-Control: public, max-age=31536000 
Date:   Thu, 09 Jan 2014 20:47:08 GMT 
Expires:  Fri, 09 Jan 2015 20:47:08 GMT 
Last-Modified: Tue, 09 Jul 2013 11:31:25 GMT

Примечания что файл может быть кэширован без повторной аттестации в течение года. Поэтому, если пользователь обновляет страницу, браузер может повторно использовать свою кешированную копию (если она есть). (Это не, что Google делает, если вы используете один из шаблона «любой версии JQuery 1.10» URL-адресов, так как, конечно, изменения версии Кончик ...)

Некоторые браузеры могут обойти их кэш с обновлением (особенно «сила», например, Ctrl + F5). В этом случае они могут по крайней мере отправить запрос If-Modified-Since.

1

Если вы хотите, чтобы предотвратить кэш и перезагрузить JavaScript при каждом запросе, сделать Суер вы используете правильный заголовок:

Cache-Control:max-age=0 

Ваш браузер undertand, чтобы обновить все ресурсы при каждом запросе.

Для лучшего понимания кэш, пожалуйста, дайте взглянуть на this A/Q

+0

OP хочет предотвратить перезагрузку. –

1

Что касается данных JSON, вы можете сохранить его в локальном хранилище (http://www.w3schools.com/html/html5_webstorage.asp)

+0

Хорошая идея, ужасная ссылка. Рекомендовать: http://www.w3.org/TR/webstorage/ –

+0

Лично я бы предпочел MDN. developer.mozilla.org –

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