Как обновить веб-страницу в Chrome (аналог Ctrl + F5) на устройстве без кнопки меню?

16

У меня есть Android-устройство Nexus 7 с 4.2.2 и браузер Chrome.

Как можно выполнить глубокое обновление веб-страницы - аналог Ctrl+F5горячей клавиши на десктопах?

Обратите внимание, что на устройстве нет кнопки меню.

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

Стан
источник
2
Как связана кнопка меню (или ее отсутствие)?
eldarerathis
@eldarerathis, я видел какой-то пост в сети, предложил нажать кнопку «Обновить», удерживая клавишу «Меню».
Стан
Ах, интересно. Я не слышал этого раньше.
eldarerathis
1
Этот вопрос имеет гораздо лучшие ответы по StackOverflow (который показывает, как чрезмерное разделение сообщества не помогает; Android достаточно близок к программированию, для которого не стоит создавать отдельный сайт; Chemistry vs. Math - конечно.)
Дэн Dascalescu

Ответы:

-2

Обход кеша для каждого сайта:

Для этого требуется простой код JavaScript, который нужно запустить в адресной строке для обхода кэша и получения содержимого с сервера вместо кэша браузера. Согласно этой странице MDN о принудительной перезагрузке текущей страницы с сервера ,

javascript:location.reload(true)

Введите указанный выше код в адресной строке браузера и нажмите клавишу Enter. Это будет получать все содержимое с сервера, а не выбирать элементы, кэшированные в вашем браузере (таким образом, обходя кеш браузера).

Обход данных кэша для всех сайтов (глобальный кэш)

Приведенный выше JavaScript работает только для определенного веб-сайта, который вы в настоящее время открыли. Для очистки всего кэша сайта используйте данные глобального кэша браузера. Вы найдете это под,

Settings > Privacy > CLEAR BROWSING DATA

Установите флажок «Кэш» (и другие параметры, такие как данные браузера, файлы cookie, пароль и т. Д., Если хотите) и выберите «Очистить».

Примечание. Хотя Ctrl+ F5приведет к тому, что браузер выбросит кэш и запросит новое содержимое с сервера, сервер может игнорировать no-cacheзаголовок и обслуживать кэшированную страницу на стороне сервера. Таким образом, даже Ctrl+ F5может вернуть старую версию страницы, если сервер игнорирует заголовок no-cache.

Режим инкогнито:

Просмотр в режиме инкогнито отключает историю и кэш. Таким образом, вы можете посетить любой сайт в режиме инкогнито, чтобы каждый раз запрашивать новый контент.


Для более интересного обсуждения того, что делает Ctrl+ F5или принудительное обновление,

Прочтите этот пост, какие запросы генерируют обновления браузеров «F5» и «Ctrl + F5»?

Счастливый
источник
Это больше не работает в Chrome 47 .
Дан Даскалеску
1
Даже после очистки данных просмотра глубокое обновление не происходило. Мне пришлось убить и перезапустить Chrome в моем телефоне Android, чтобы заставить его получать из кеша. (В качестве запоздалой мысли, похоже, что даже после очистки кеша на диске (предположительно), кэш в памяти все еще существует. Killing Chrome также стирает кэш памяти.) [PS: под «диском» я подразумеваю энергозависимое хранилище или флэш-память.]
ADTC
3

На моем планшете Samsung с браузером Chrome введите это в адресной строке:

javascript:location.reload(true)

Это должно вызвать полную перезагрузку с использованием Javascript. Теперь мне не нужно ждать несколько дней, чтобы увидеть результаты изменения кода, которое я сделал. Новая проблема в том, что печатать на планшете - не мое любимое занятие.

Вместо ввода вышеуказанной команды я также попытался перейти в режим рабочего стола и затем вернуться назад. Это не глубоко освежило.

Aad vd A
источник
2

Я не получил ни одно из этих решений для работы. Однако я нашел рабочее решение.

Во-первых, выясните URL-адрес CSS. В моем случае это выглядело так:

/min/assets/css/style.min.css

Запишите его в поле адреса, но также добавьте в него переменную GET:

/min/assets/css/style.min.css?hello

Надеюсь, переменная GET принята. Потому что это новый URL, он заставляет CSS перезагрузить. Теперь вернитесь на сайт, и CSS должен был быть перезагружен.

Йенс Торнелл
источник
2

Я нашел это !!!!!!

С левой стороны URL-адреса есть значок информации (i) или значок блокировки. Нажмите на значок и затем [конфигурация веб-сайта].

Вы найдете значок корзины для очистки кэша текущего сайта и, в качестве альтернативы, кнопку «Восстановить настройки».

Работа на Android Chrome 71.

JCM
источник
1
Не работает на моем S9 +, сборка Chrome 73.0.3683.90. Я нажал опцию «Очистить и сбросить» как минимум 15 раз на странице, которой я управляю (поэтому я знаю, что код делает хорошо). Однако JS, работающий на странице, которую я загружаю, все еще является старой версией.
SE снова наносит удар, к сожалению,
1
Ну, он отлично работал на моем S9, так что я думаю, что-то происходит в вашем случае! Не могли бы вы, пожалуйста, еще об этом?
JCM
Теперь я попробовал это на двух разных устройствах, одно из которых использует режим разработчика (мой телефон, так как я разработчик) и друга. Также я попробовал на планшете; не ходи туда +. Кроме того, я даже попробовал на своем корпоративном iPhone с помощью Chrome, и та же проблема есть. Так что, с моей точки зрения, вам кажется, что вам повезло больше, чем мне кажется, что в моем распоряжении есть несколько дефектных устройств.
SE бьет снова, к сожалению
Конечно, настоящая проблема заключается в шутливом поведении Chrome / Android и гиперагрессивном кешировании. Это похоже на режим инкогнито, который не работает (говоря о том, что ... который тоже не работал должным образом ...)
SE наносит удар снова, к сожалению,
Только что проверил, что в iPhone Chrome нет этой опции, о которой вы говорите, поэтому я считаю, что мы не говорим об одном и том же: более того, в моем Android-браузере Chrome нет «очистки и сброса». Чтобы проверить его трижды, протестируйте мое предложение на работающем OK Xiaomi A1 (обратите внимание, что он отображает размер локального кэша страницы в килобайтах). Может быть, вам нужно закрыть вкладку (или попробуйте убить Chrome). В противном случае мне интересно, что может сделать «мусорная кнопка» одного конкретного сайта ...?
JCM
1

Я просто нахожу более элегантное решение. В меню веб-страницы попросите настольную версию сайта. Он извлечет данные с сервера и страница перезагрузится. После этого вы можете вернуться к мобильной версии еще раз.

Сергей Грановский
источник
1
Не все веб-сайты предлагают мобильные / настольные версии.
эль
1
В текущей версии Chrome для Android есть опция «Запросить сайт рабочего стола». Независимо от того, выполняют ли все сайты этот запрос или нет, во многих случаях это все еще эффективный вариант. Попробовать это и обнаружить, что это не работает, гораздо проще и быстрее, чем очистить кеш в настройках.
Филипп Джонс
1

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

Мне также не удалось временно изменить метатеги кэша в заголовке html.

Только на рабочем столе и не может быть автоматизирован:

ctrl + R

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

теперь вы должны нажать

ctrl + shift + R
or
shift + F5

Похоже, что хром затруднил очистку кеша.

Они, вероятно, делают это, чтобы обмануть в тестах скорости браузера. VW Style.

Я написал свою собственную обходную функцию forceReload (), которая работает на Windows Chrome и Android Chrome и Chrome:

window.forceReload = function(){
    if( !window.fetch)return document.location.reload( true);
    var els = document.getElementsByTagName( "*");
    for( var i = 0; i < els.length; i++){
        var src = "";
        if( els[i].tagName == "A")continue;
        if( !src && els[i].src)src = els[i].getAttribute( "src");
        if( !src && els[i].href)src = els[i].getAttribute( "href");
        if( !src)continue;
        fetch( src, { cache: "reload"});
    }
    return document.location.reload( true);
};

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

саксофон
источник
Спасибо, что поделились кодом. Похоже, что Fetch все еще является экспериментальным API, тогда, возможно, подойдет и другой экспериментальный Cache API.
Стэн
-1

Потяните вниз страницу, чтобы перезагрузить ее, она поставляется корпорацией Chrome для смартфонов, чтобы увидеть больше подобных трюков, посмотрите эту ссылку, где я нашел решение вашей проблемы

fsalazar_sch
источник
1
Хотя эта функция недавно добавлена ​​в браузеры Chrome (версия 41 выше), она не будет доступна в более старых версиях. Так что эта функция может или не может работать. И что более важно, это просто перезагружает страницу обычным способом, но OP требует жесткого обновления.
Счастливчик
Не указано, находится ли запрошенное решение под точкой зрения Android или кодирования
fsalazar_sch
1
Не могу понять, что вы подразумеваете под этим. Но этот ответ не убеждает меня в том, что он даст решение проблемы ОП.
Счастливчик
Этот «ответ» буквально говорит людям, что вы можете выполнить регулярное обновление, потянув вниз страницу. Однако вопрос OP заключался в «жестком обновлении», эквиваленте CTRL + F5 на ПК.
Борт
-3

Слева от окна веб-адреса, которое вы посещаете, находится почти круговая стрелка.

Маноло
источник
1
Я не верю, что это глубоко освежает, как того требует Стэн.
dotVezz