Почему кеш-память Safari не будет очищена?
Я пытаюсь отлаживать сайт на iPhone4 (iOS4) iPad1 (iOS3.3) и на рабочем столе.
Моя проблема заключается в том, что я не могу полностью удалить кеш iPhone.
Если я добавляю оповещения/консоли в файлы js, которые я отлаживаю, они отображаются на iPad и на рабочем столе, но iPhone просто перезагружает из кеша.
Если я очистил кеш через settings>safari>delete browser history, cache, cookies
, а в Safari удалил все закладки и удалил файлы на сервере, iPad и разрыв рабочего стола (отсутствующие файлы), но iPhone все еще загружает страницу, как будто ничего не произошло.
Не уверен, что это подходящее место, чтобы спросить, но, возможно, у кого-то есть аналогичный опыт и идея, как обходиться?
Спасибо!
ИЗМЕНИТЬ:
Я играл с этим еще немного. Если я запускаю приложение через значок, кеш очищается. Только когда я открываю страницу в Mobile Safari, она по-прежнему использует неправильный файл из кеша. Указатели по-прежнему приветствуются!
ИЗМЕНИТЬ:
Я начинаю щедрости по этому поводу. Я использую RequireJS и JqueryMobile на сайте, поэтому они также могут быть причиной отказа кэша. Тем не менее, я не понимаю, почему он очищается в режиме приложения и почему он не отображается в Mobile Safari.
Я пробовал следующее:
1. Нажатие reload page
в строке URL не очищает кеш. Нажав на ссылку, а затем загружая страницу через go
, похоже, время от времени очищает кеш
Ответы
Ответ 1
Несмотря на то, что это немного взломано, возможно, стоит пойти на это обходное решение (я предполагаю, что это для разработки)
В соответствии с примечаниями по отключению кеширования ajax здесь Как отключить кеширование Ajax в браузере Safari? вы можете установить заголовки без кеша при разработке или в обычном HTML, как это
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
очевидно, что он не исправит вашу первоначальную проблему застревания. но вы можете разбить цикл, добавив произвольный параметр запроса: something = 3164, чтобы URL-адрес был действительно уникальным. то в следующий раз, когда он загрузится, мы надеемся, что он будет удерживать параметры no-cache.
Если даже это не работает, вы можете настроить закладку, которая перенаправляет вас на другой случайный номер = 14361 каждый раз, когда все они являются фактически уникальными вызовами - но тогда мы попадаем в глупую территорию!
Я хотел бы иметь правильное решение, но когда я разрабатываю веб-приложения JS, я обнаружил, что иногда все обновляется должным образом на некоторое время, тогда иногда это не... нет реального шаблона, который я могу сказать - кроме факт, я думаю, что он делает это меньше, когда отладчик включен (но это абсолютно необоснованно; -)
Ответ 2
При разработке для iOS mobile вы можете легко очистить кеш, подключив телефон к компьютеру через USB и используя инструменты разработки:
- В телефоне включите инструменты разработки: Настройки/Safari/Дополнительно
- В компьютере включите меню Safari: Настройки/Дополнительно
- Убедитесь, что мобильный Safari открыт и проверяет телефон: Develop/PHONE_NAME/TAB_NAME
- Теперь вы нажимаете cmd-shift-r, чтобы очистить кеш в телефоне
Ответ 3
Попробуйте остановить сафари и перезагрузите его и удалите все страницы, находящиеся в сафари.... см. изображение, как закрыть страницы ![enter image description here]()
Ответ 4
Вы имеете дело с HTML5 "офлайн-приложение" ? Использование файла манифеста для офлайн-приложений является совершенно новым и имеет странные причуды для каждого браузера. Измените файл манифеста на сервере, и iPhone снова получит страницы.
ИЗМЕНИТЬ:
Если у вас когда-либо был файл манифеста (и атрибут HTML, указывающий на него), если вы удалите манифест в неправильном порядке, ваш кеш может запутаться:
- HTML и манифест существуют
- Удалите файл манифеста и перезагрузите HTML-страницу = > HTML-страница должна быть un-manifest, так как манифест 404, но в некоторых браузерах это не так.
- Измените HTML = > HTML-страницу не удалите кеширование, так как файл манифеста (несуществующий) не изменился.
Чтобы правильно развернуть его, попробуйте:
- Добавьте HTML и запишите в
- Сначала удалите атрибут манифеста HTML и перезагрузите страницу
- Затем удалите файл манифеста с сервера.
Ответ 5
есть другое решение без перезапуска вашего устройства для сафари,
- Перейдите к
Settings
- Затем перейдите к
Safari
-
Затем перейдите и просмотрите параметры Clear Cookie and Data
, как показано ниже. ![iPhone Safari Clear Cookie and Data]()
-
Теперь вернитесь к своему сафари, и все готово!
если у вас есть еще один комментарий ниже.
Ответ 6
Что для меня работает, это поиск моего сайта в Google и поиск результата поиска Google.