Можно ли принудительно обновить кэш в Safari, работающем на iOS?


57

Большинство браузеров Windows для настольных компьютеров используют комбинацию клавиш Ctrl+ F5для принудительного обновления страницы кеша. Браузеры на базе Mac OS X имеют тенденцию использовать Command+ R. Существует ли эквивалентное обновление кэша для одной страницы в Safari, работающей на iOS?

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


Вы об этом думаете? apple.stackexchange.com/questions/73153/…
bassplayer7

@ bassplayer7 это близко, но не совсем то же самое. Command + R обновляет только ресурсы для конкретной страницы, с которой вы имеете дело. Это означает, что внешне связанный JavaScript из CDN также будет обновлен. Это исключает ресурсы, на которые нет ссылок. Это очень мелкозернистый элемент управления, предоставляемый настольным браузерам, и он очень удобен для веб-разработки.
Ахстил

Имеет смысл. Как веб-разработчик, я понимаю вашу точку зрения, насколько это удобно. Я предполагаю, что вы уже делаете, но я не могу не упомянуть об этом - я использую это приложение от Adobe для моей мобильной работы. И я считаю, что перезапуск Safari - как бы громоздко он ни был - это как минимум больше обновления, чем кнопка. Я не достаточно испортил это, чтобы точно знать, что это освежает.
bassplayer7

Разве нажатие кнопки обновления в адресной строке также не обновляет кэшированный контент?
Джерри

Ответы:


36

Принудительный выход не работал для меня надежно в iOS 8. Что использовало закрытый режим для тестирования:

  1. Откройте страницу в приватном режиме (и добавьте в закладки, чтобы вы могли открыть ее позже).
  2. Когда вам нужно обновить, закройте «вкладку» браузера (вы можете остаться в Safari и приватном режиме).
  3. Снова откройте страницу (используйте закладку, созданную на шаге 1).

1
Не очень хорошее решение, но, похоже, это лучшее, с чем iOS дает нам работать.
Брендан

2
Как мне перейти в «приватный режим»?
linuxdan

В Mobile Safari: коснитесь значка двух квадратов, который покажет вам все открытые вкладки и покажет кнопку режима «Личный» в левом нижнем углу. support.apple.com/ru-gb/HT203036
Мэтт Сефтон,

Начиная с iOS 13.1.3 это больше не работает.
Тимбо

11

Если ваш телефон подключен к компьютеру / ноутбуку Apple, с открытыми инструментами разработчика Safari (и активным окном) вы можете нажать:

Command Key + Option + R


Бьюсь об заклад, это работает, если вы используете клавиатуру Bluetooth с телефоном, а также.
Риного

@rinogo Отрицательный. Я использую волшебную клавиатуру apple на своем ipad pro, и «cmd + shift + r» ничего не делает в браузере Safari.
danielson317

7

Если принудительно выйти из Safari (нажмите кнопку «Домой», затем дважды нажмите кнопку «Домой», нажмите и удерживайте значок Safari на панели многозадачности, а затем коснитесь красной точки), похоже, что Safari очистит кэш. Но это очистит весь кеш, а не только одну страницу.

Вы также можете удалить файлы cookie и данные Safari в приложении «Настройки». В разделе «Дополнительно» вы можете удалить данные с отдельных веб-сайтов, что может сработать, если вы знаете все сайты, связанные с веб-страницей, которую вы хотите очистить.


1
Это не работает для меня (IOs 7.0.4).
Набиль Кадими

3
В iOS 7 вы выбрасываете приложение вверх из списка недавних / многозадачных приложений, чтобы принудительно закрыть его.
hotpaw2

1
iOS 7.1 здесь, я проверил через инструменты удаленного разработчика Safari, и кажется, что ресурсы действительно не кэшируются после принудительного выхода из приложения (Временные
шкалы

5

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

  • Включите веб-инспектор на мобильном устройстве:
    Настройки> Safari> Дополнительно> Веб-инспектор
  • Включите инструменты разработки в Safari в MacOS:
    Safari> «Установки»> вкладка «Дополнительно»> «Показать разработку» в строке меню
  • Подключите устройство к компьютеру
  • Откройте панель инструментов разработчика для устройства из Safari на компьютере:
    Разработка> iPhone для примера> example.com/page
  • Чтобы отключить кеширование, перейдите на вкладку «Сеть» и убедитесь, что маленький значок «нет кеша» синий (выглядит как цилиндр с крестовиной через него).
  • Теперь вы сможете в любое время просто нажать «Обновить» на устройстве iOS, и вы получите актуальную версию без кэширования!

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

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


Обновление: теперь вы можете подключиться к устройству через WiFi. Может потребоваться первоначальная настройка с помощью кабеля, но вы можете подключиться без него после этого.
Разработка> Пример iPhone> Подключение через сеть


1

Удалите кэшированные данные для одного сайта, выбрав « Настройки» > « Safari» > « Дополнительно» > « Данные сайта» > « Показать все сайты» .

Нажмите « Изменить» в правом нижнем углу экрана, а затем прокрутите список или выполните поиск в поле поиска, чтобы найти веб-сайт, который вы хотите очистить). Нажмите на красный - значок рядом с адресом сайта, а затем нажмите Delete появившейся кнопки.

Вернитесь в Safari и перезагрузите страницу, и все артефакты сайта будут перезагружены.


Это не сработало. Элементы не кликабельны на моем iPad (iOS 12).
cheesus ТАК перестать вредить Монике

0

В Safari включите режим разработчика. Затем вы можете использовать следующую комбинацию для очистки кэша:

Option-Key + Command-Mac-Key + E 

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


К сожалению, ваши инструкции относятся только к настольной версии Safari. Вопрос был о версии для iOS.
calum_b

-1

Дважды нажмите кнопку обновления.


7
Это работает для кого-нибудь? Двойное касание просто останавливает обновление, которое я начал с первого касания.
Брендан

Да, это было единственное, что на самом деле работало для меня. Не уверен, если это только пинает сафари в задницу, но это работает.
Бен Рабиду

-3

Вы можете добавить случайное число в скрипт или ссылку src, например:

<link rel="stylesheet" href="css/main.css?rand=<?=$rand;?>" type="text/css" /> <script type="text/javascript" src="js/main.js?rand=<?=$rand;?>"></script>

это заставляет Safari перезагрузить файл, потому что он думает, что это другой файл.


4
Как это работает со стороны пользователя?
nohillside

1
Добавьте случайный параметр к URL-адресу вверху...?rand=15
Аарон Дигулла

Это называется «очисткой кэша», что делает строку URL уникальной в том виде, в каком ее видит браузер. Таким образом, он никогда не найдет этот URL в своем кэше. (И принимающая сторона просто полностью игнорирует GET-параметр.) Но на самом деле это не то же самое, что запрашивает OP.
Майк Робинсон

@AaronDigulla Это не будет работать для связанных ресурсов, таких как файлы CSS и изображения.
Flimm

-3

Длительно нажмите кнопку обновления. Айфон 6


6
Это вызывает меню с «запрос рабочего стола сайта» в телефоне 7.
Flimm
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.