Как я могу очистить кеш веб-приложения IOS на Homescreen?
Я использую JQTouch для создания веб-приложения на Homescreen с помощью метатега "apple-mobile-web-app-able", но независимо от того, сколько раз я очищаю кеш из настроек, JavaScript-приложение для веб-приложений по-прежнему более старая кешированная версия.
Как ни странно, если я установил содержимое метатега:
<meta name="apple-mobile-web-app-capable" content="no" />
... затем добавьте веб-приложение в Homescreen, я получаю последнюю версию при запуске.
Но если я установил метатег;
<meta name="apple-mobile-web-app-capable" content="yes" />
... затем добавьте веб-приложение в Homescreen, я получаю старую кешированную версию.
PS. Я могу подтвердить, что только javascript, который не будет обновляться.
Ответы
Ответ 1
Вы можете попробовать добавить уникальную строку в конец вашего атрибута js include src (например, используйте временную метку). Имейте в виду, что вам придется изменить эту уникальную строку для каждого обновления, которое вы хотите сделать, поэтому вы можете захотеть заняться ленивой загрузкой (что само по себе может решить вашу проблему):
<script type="text/javascript" src="myScript.js?012345"></script>
Это обычно заставляет браузер захватывать последнюю версию script. Может работать...
Ответ 2
Я обнаружил, что использование bundling в ASP.NET MVC разрешило эту проблему для меня.
Он автоматически генерирует связанное звено формы:
http://www.domain.com/MvcBM_time/bundles/AllMyScripts?v=r0sLDicvP58AIXN_mc3QdyVvVj5euZNzdsa2N1PKvb81
Токен после v = изменяется, если какой-либо файл в пакете изменяется, гарантируя, что браузер запрашивает пакет, получит последний пакет.
Ответ 3
Это способ, с помощью которого я удалял полностью кеш:
1-Удалить вкладки в сафари, где есть ваше приложение.
2-Удалить значок приложения на главном экране.
3- Убить сафари из памяти.
4-Перейдите к настройкам/сафари и нажмите очистить кеш.
5 - Вы можете перезагрузить iPhone/iPod, если хотите убедиться, что он работает
Ответ 4
Если вы заблокированы, просто сделайте это в терминале
rm ./Library/Caches/com.apple.webapp/Cache.db
Ответ 5
Это сильно заставило меня замолчать. Я попытался убить Safari, очистить кеш, переключиться в частный режим и удалить веб-приложение с главного экрана. Ни одна из этих работ не работает, но то, что работает, временно загружает страницу веб-приложения в сафари и перезагружается.
Если вы используете добавить на главный экран, вы можете добавить? web_app_ready = 1 к URL-адресу установки. Поскольку это не процедура конечного пользователя, добавление строки запроса к каждому script (ответ выше), вероятно, будет более эффективным для не-разработчиков среды.
Ответ 6
Построение SquareFeet означает, что каждый раз можно автоматически вытаскивать новый файл с помощью уникального тега GET, добавленного к имени файла, с использованием PHP. Например:
<link rel="stylesheet" type="text/css" href="/css/global.css?
<?php echo(mt_rand(10000000, 99999999)); ?>
" />
Теоретически, одна и та же задача может быть выполнена с использованием JavaScript, хотя с некоторыми изменениями на веб-сервере:
<link rel="stylesheet" type="text/css" href="/css/global.css?
<div id="id"></div>
" />
<script language="Javascript" type="text/javascript">
document.getElementById("id").innerHTML = Math.floor((Math.random() * 10000) + 1);
</script>