JQuery очистить кеш при выходе из системы
Когда пользователи выходят из моего мобильного приложения, как я могу убедиться, что кеш очищен?
То, о чем я думаю, это перенаправление/выход на определенную страницу, которая очищает кеш и перенаправляет на первую страницу, но как я могу удалить все из кеша?
Я использую jQuery Mobile 1.0b2pre.
Ответы
Ответ 1
Вот как я его решил:
My /logout
действие, в котором сеанс пользователя уничтожается при переадресации бэкенда на /exit
, который имеет атрибут id exitPage
.
В моем JavaScript я попросил jQuery Mobile вызвать, когда эта страница будет создана. Затем я удаляю DOM и перенаправляю на первую страницу.
/выход:
<div data-role="page" id="exitPage"></div>
/my.js:
jQuery('#exitPage').live('pagebeforecreate', function(){
jQuery(document).empty();
window.location.replace('/');
});
Ответ 2
вы не можете очистить кеш. но то, что вы можете сделать, это определить пользователя на основе его идентификатора сеанса и добавить его к URL-адресам ресурсов someimage.png?cachecontrol=blablalba
в следующий раз, когда он войдет, у него будет новый идентификатор сеанса, поэтому он получит новые файлы, даже если старые в кеше. другим решением будет явно установить заголовок управления кешем в no-cache. но вы не можете заставить его браузер очистить кеш
Ответ 3
Чтобы избежать изменения URL-адреса всех ваших страниц, вы можете отправить заголовок ETag
с каждым ответом в сеансе на основе идентификатора сеанса. Если вы также включаете Cache-Control:must-revalidate
, это должно сделать трюк.