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