2012-03-29 2 views
0

Я заметил, что кеширование на Android & Устройства Apple могут быть очень интенсивными, на следующей неделе мы запускаем сайт jquerymobile в производство, и мне нужно убедиться, что у меня есть возможность очистить кеш пользователей.Принуждение мобильных устройств к обновлению их кеша

Я попытался добавить инкрементное число в строку запроса ресурсов JS, CSS, например? v = 2 и т. д., которая, кажется, работает прилично, но также обнаружила, что иногда не работать. .

У кого-нибудь есть идеи? Манифест?

+0

На каких браузерах был отключен параметр cache-buster версии? –

ответ

0

Я всегда использовал строку запроса на изъятие кеша, чтобы принудительно загрузить новую копию с сервера.

Вы также можете использовать <HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">, но это (в теории) избавит вас от всего кеширования на странице, а не только при появлении обновлений.

0

Добавление переменной GET в источник вашего актива будет работать для отдельного актива, но если вся страница будет кеширована, то новое значение переменной не будет найдено, и все кэшированные активы будут загружены.

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

Я считаю, что вы также можете использовать кэш манифеста, чтобы сообщить браузеру не кэшировать определенные активы: http://www.html5rocks.com/en/tutorials/appcache/beginner/

0

Я слышал о случаях, когда строка запроса получает игнорировали изменения index.js v = 3 на что-то подобное? index.3.js, то вы можете перенаправить с .htaccess.

Вот аккуратный способ, H5BP обрабатывает это с .htaccess и временные метки:

<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L] 
</IfModule> 

Этот маршрут будет все запросы /path/filename.20120101.ext к /path/filename.ext. Затем вам нужно будет добавить отметку времени в вашем имени файла, например index.20120329.js, и она будет перенаправлена ​​на index.js

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