Почему мой мобильный кэш 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 и используя инструменты разработки:

  1. в телефоне включите инструменты разработки: Настройки / Safari / Advanced
  2. на компьютере включите меню Safari develop: Settings / Advanced
  3. убедитесь, что мобильное сафари открыто и проверьте телефон: разработка / PHONE_NAME / TAB_NAME
  4. Теперь нажмите cmd-shift-r, чтобы очистить кэш в телефон

попробуйте остановить safari и перезапустить его и удалить все страницы, которые есть в safari.... смотрите изображение как закрыть страницы enter image description here


вы имеете дело с HTML5 "offline" приложение? Использование файла манифеста для автономных приложений довольно ново и имеет странные причуды для каждого браузера. Измените файл манифеста на сервере, и iPhone должен снова получить страницы.

редактировать: Если у вас когда-либо был файл манифеста (и атрибут HTML, указывающий на него), если вы удалите манифест в неправильном порядке, ваш кэш может запутаться:

  1. HTML и манифест exist
  2. удалите файл манифеста и перезагрузите HTML-страницу => HTML-страница должны un-manifest, начиная с манифеста 404, но в некоторых браузерах это не так.
  3. изменить HTML = > HTML-страница не un-cache, так как (несуществующий) файл манифеста не изменился.

чтобы правильно отменить манифестацию, попробуйте:

  1. добавьте HTML и манифест обратно в
  2. Сначала удалите атрибут манифеста HTML и перезагрузите страница
  3. затем удалите файл манифеста с сервера.

есть еще одно решение без перезагрузки устройства для safari,

  1. на Settings
  2. тогда спускайся и иди в Safari
  3. затем спуститесь и посмотрите опции Clear Cookie and Data как на рисунке нижеiPhone Safari Clear Cookie and Data

  4. Теперь вернитесь к своему сафари, и все готово!

Если у вас есть еще вопрос комментарий ниже.


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