Заставляя мобильные устройства обновлять свой кеш - PullRequest
0 голосов
/ 30 марта 2012

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

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

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

Ответы [ 3 ]

0 голосов
/ 30 марта 2012

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

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

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

0 голосов
/ 30 марта 2012

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

Вот изящный способ, которым H5BP справляется с этим с помощью .htaccess и timestamps:

<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

0 голосов
/ 30 марта 2012

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

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

...