Jak mogę wymusić twarde przeładowanie w Chrome na Androida


207

W Chrome na komputery stacjonarne mam opcje w narzędziach programistycznych do całkowitego wyłączenia pamięci podręcznej po otwarciu narzędzi programistycznych i mam opcje ręcznego przeładowania po długim kliknięciu przycisku przeładowania (przy otwartych narzędziach programistycznych).

Czy jest taka technika dla Chrome na Androida? Nie znalazłem żadnego ustawienia. Co mogę zrobić, gdy chcę zmusić przeglądarkę do pobrania pliku javascript lub css zamiast korzystania z pamięci podręcznej podczas programowania?



Właśnie wróciłem, aby rozszerzyć (co było) stabilną aplikację internetową i odkryłem, że tak się dzieje. Najnowsze dane stanu są przechowywane w pliku .js z sufiksem url custer-buster url. To już nie działa, w Chrome na Windows, ChromeOS lub Android.
Euan M

wygląda na to, że proste odświeżenie (kliknięcie strzałki w kółko w) wykrywa zmiany w tych dniach. żadnych sztuczek. ... daj mi znać, jeśli się mylę.
Ronnie Royston

Odpowiedzi:


167

Używam window.location.reload(true)zgodnie z MDN (i tym podobnym pytaniem) wymusza przeładowanie strony z serwera.

Możesz wykonać ten kod w przeglądarce, wpisując javascript:location.reload(true)w pasku adresu.


7
Po prostu wpisz go w pasku adresu poprzedzającym kod javascript:.
Konrad Dzwinel

4
Właściwie powinieneś być w stanie uniknąć window.części. javascript:location.reload(true)powinien załatwić sprawę.
Konrad Dzwinel

5
nie działało dla mnie na chrome v55.0.2883.91 / android5.1.1
Kev

20
To nie działa na moim, v56.0.2924.87 na Androida 7.1.1. Dlaczego możesz po prostu nacisnąć przycisk odświeżania i ponownie pobrać przeglądarkę tak, jak kiedyś? Taka irytacja przy próbie rozwoju.
Scott Wilson,

33
Otwieram okno Incognito
Deepak Kamat

132

Wyświetlanie strony w trybie incognito spowoduje wyłączenie pamięci podręcznej. To był jedyny sposób, w jaki mogłem wymusić odświeżenie arkusza stylów bez ręcznego czyszczenia pamięci podręcznej przez ustawienia.


2
@ Kev Ani dla mnie.
Ricky Boyce,

1
Tak, ten działa dla mnie na Androida 6.0.1 z Chrome 59.
Avio

4
Działa to lepiej niż zaakceptowana odpowiedź, przynajmniej na Androidzie 7.1.2 i Chrome 61. Buforowanie jest naprawdę agresywne. Nawet opróżnianie buforowanych plików dla tej domeny nie działało dla mnie.
Ogier Schelvis

Używam go częściej, jeśli to nie działa, prawdopodobnie pamięć podręczna znajduje się na serwerze, a nie w przeglądarce.
Deepak Kamat

2
Wyczyści pamięć podręczną w trybie incognito tylko za pierwszym razem. Następnie pojawia się ten sam problem
Mara

75

Również opcja:

  1. Menu
  2. Ustawienia
  3. Prywatność
  4. Wyczyść dane przeglądania
  5. Zaznacz „Pamięć podręczna” i naciśnij „CLEAR”

a następnie ponownie załaduj stronę.


1
Teraz zmieniono na Clear Browsing Data, gdzie możesz sprawdzić clear cacheza pomocą pola wyboru.
shaijut

1
Nie, a następnie ZABIJ Chrome, uruchom ponownie Chrome, a następnie ponownie załaduj stronę. Tak, stało się jeszcze gorzej.
ADTC

4
Aktualizacja: nawet zabijanie Chrome już nie działa. Nie mam pojęcia, co do cholery usuwa opcja „Buforowane obrazy i pliki”. Nadal trzyma się buforowanego pliku CSS. To staje się coraz bardziej śmieszne!
ADTC

1
Aktualizacja: Zobacz odpowiedź Heidgert. Wyczyszczenie pamięci podręcznej może nadal ładować wynik „z pamięci podręcznej” z serwerów Google, jeśli „Oszczędzanie danych” jest włączone w ustawieniach Chrome.
ADTC

1
Spowoduje to wyczyszczenie pamięci podręcznej ze WSZYSTKICH witryn, nie tylko z inspekcji.
Obmerk Kronen

46

Możesz użyć opcji Poproś o witrynę na pulpicie z menu aplikacji (po prawej stronie paska adresu), która wymusi ponowne załadowanie strony.

Po prostu dotknij go, poczekaj na odświeżenie, a następnie usuń zaznaczenie.


Potwierdzono pracę w Chrome. Prawie przegapiłem tę odpowiedź podczas przeglądania. Usunięto komentarze dotyczące Firefoksa, aby pomóc następnej osobie. Mam nadzieję, że nie wydaje się to sprzeczne z intencjami autora .
Ishmaeel

1
Jest to zdecydowanie najlepsza odpowiedź dla programistów, gdy utkniesz w pliku css lub js. Uważam, że zwykle odświeżanie działa dobrze, ale czasami z jakiegoś niewytłumaczalnego powodu plik js lub css zacina się i jest to jedyny sposób, aby go odkleić. Chciałbym dać więcej niż 1 głos pozytywny, lol, ponieważ to takie łatwe rozwiązanie.
Lizardx

8
To działało jakiś czas temu, ale już nie działa na żadnej najnowszej wersji chrome z grudnia 2017 r.
Capagris

1
Działa to dla mnie z Chrome 2018 65.0.3325.109 na Samsung Android 5.1.1; SM-T900 Build / LMy47X. Miał dodatkową zaletę, że nie niszczył buforowanych danych (takich jak localStoragewartości).
CODE-REaD

1
Nie działa w kwietniu 2019 r. Chrome 73+ nie działa.
SE uderza ponownie Niestety

31

Wspominając o tym, ponieważ wspomniałeś „przy programowaniu”.

Możesz kontrolować urządzenie mobilne za pomocą przeglądarki Chrome Desktop.

Odwiedź chrome://inspect/#devicesna pulpicie. I Inspecturządzenie podłączone do pulpitu. Zgadzam się na prośbę o pozwolenie.

Powinieneś teraz zobaczyć pełne okno Devtool dla bieżącej strony na urządzeniu mobilnym.

Teraz użyj skrótu twardego przeładowania (Cmd + Shift + R) na komputerze, aby dokonać twardego przeładowania na urządzeniu mobilnym!


3
ten komentarz jest nieaktualny, ale postawił mnie na właściwej drodze. Najpierw musisz włączyć debugowanie telefonu przez Chrome.
Deborah

Aby uzyskać szczegółowe instrukcje dotyczące włączania debugowania USB w telefonie z Androidem, zobacz: stackoverflow.com/a/16707217/1024735 . Ta funkcja jest niesamowita nie tylko z powodu możliwości przeładowania. Dzięki!
kevinmicke

Do testowania w emulatorach Androida Ctrl + Shift + R w devtools jest naprawdę fajny i szybki. Bez włączania i wyłączania jakichkolwiek ustawień itp. Dzięki.
Rainer Schwarze

21

Nie zapomnij upewnić się, że ustawienie „Ogranicz użycie danych” jest WYŁĄCZONE, ponieważ wydaje się, że pobiera dane z pamięci podręcznej (z serwerów Google?), Nawet jeśli lokalna pamięć podręczna jest opróżniona.


1
MYŚLĘ, że to ustawienie nazywa się teraz po prostu „Oszczędzaniem danych”.
Bletch

19

Jak zresetować wszystkie dane dla danego adresu URL / witryny w Chrome Mobile na Androida:

1 - Otwórz menu Chrome i dotknij ikony „i (informacje)”

jeden

2 - dotknij „Ustawienia strony”

dwa

3 - Wybierz ikonę kosza

trzy

To wszystko, nawet najbardziej głęboko zintegrowany pracownik serwisu dla tego adresu URL umrze.


7
To nie działa w Chrome 73.0.3683.90 na Samsung S9 +. Próbowałem tego ponad 15 razy, a także javascript: location.reload (true), i to nie działa. Zdaniem Guug-Ul, pana ciemności, użytkownicy Androida nie mogą też być programistami.
SE uderza ponownie Niestety

Działa z moją notatką 8 .. Ale potem muszę odświeżyć stronę.
Chris Cudmore

Możesz także uzyskać dostęp do tego menu, klikając ikonę kłódki (lub cokolwiek, co wyświetla dla niepewnych połączeń) po lewej stronie adresu URL.
Chris Cudmore

Zdecydowanie najlepsze rozwiązanie! <3
bArraxas

12

Wiem, że to stare pytanie, ale stwierdziłem, że zaakceptowana odpowiedź nie działała dla mnie.

Alternatywnym rozwiązaniem byłoby dołączyć URL z nowym parametrem url takich jak website.com?a=1, website.com?a=2itp

Jeśli masz już parametry, oczywiście użyłbyś znaku handlowego i website.com?q=test&a=1


To działa. Wystarczy, ?ajeśli chcesz przeładować tylko raz.
Dan Dascalescu

11
Nie jest to bardzo wykonalne w przypadku przeładowywania buforowanych plików referencyjnych (takich jak CSS lub JS), ponieważ nie można tak naprawdę edytować głównego kodu HTML, aby dodać ?a- oczywiście, chyba że jesteś gospodarzem witryny.
ADTC

7

Od 2018 r. Z Centrum pomocy Google (testowane na Chrome 63):

  1. dotknij menu trzech kropek ;
  2. wybierz Historia> Wyczyść dane przeglądania ;
  3. w razie potrzeby wybierz przedział czasowy (nad listą kontrolną);
  4. odznacz wszystkie elementy oprócz obrazów i plików z pamięci podręcznej ;
  5. przejdź do Wyczyść dane i potwierdź.

Jak wspomniano w innej odpowiedzi, karty incognito są również bardzo przydatne do programowania.


Uwaga krok 3: wybierz okres. To załatwiło sprawę, ponieważ próbowałem wyczyścić strony z pamięci podręcznej sprzed 3 tygodni.
Dror

To nie twoja wina, ale jest to dość okropne rozwiązanie, ponieważ usuwa dane przeglądania również dla wszystkich innych witryn, co jest uciążliwe, jeśli używasz przeglądarki do celów innych niż praca programistów!
GameKyuubi

@GameKyuubi W rzeczywistości, jeśli wybierzesz dane z ostatniej godziny, ból jest ograniczony. Ale oczywiście to rozwiązanie jest dość słaba, tylko odwołuje go, ponieważ jest to jedno i to urzędnik wykonuje pracę (w przeciwieństwie do kilku innych).
Skippy le Grand Gourou

To właśnie mam na myśli, że to oficjalne rozwiązanie jest wręcz żenujące.
GameKyuubi

7

Znalazłem rozwiązanie, które działa, ale jest brzydkie.

  • Podłącz urządzenie z Androidem do komputera za pomocą kabla USB i otwórz Chrome na pulpicie .
  • Kliknij prawym przyciskiem myszy dowolne miejsce na stronie i wybierz „Sprawdź”.
  • Kliknij menu z trzema kropkami i wybierz „Urządzenia zdalne” w menu „Więcej narzędzi”:

    wprowadź opis zdjęcia tutaj

  • W panelu, który zostanie otwarty, wybierz swoje urządzenie, a następnie przycisk „Sprawdź” obok nazwy karty w telefonie, którą należy odświeżyć:

    wprowadź opis zdjęcia tutaj

  • W oknie, które zostanie otwarte, kliknij kartę „Sieć” i zaznacz pole wyboru „Wyłącz pamięć podręczną”:

    wprowadź opis zdjęcia tutaj

  • Załaduj ponownie stronę w telefonie lub za pomocą przycisku przeładuj w oknie DevTools.

Uwaga: jeśli twojego telefonu nie ma na liście urządzeń:

  • upewnij się, że połączenie USB korzysta z trybu przesyłania plików i nie jest po prostu ładowaniem
  • spróbuj ponownie uruchomić ADB lub uruchom, adb devicesaby sprawdzić, czy urządzenie jest wykrywane

1
niesamowite rozwiązanie, działa głównie w celu „sprawdzenia” strony internetowej urządzenia bezpośrednio na komputerze, a także możesz wyczyścić pamięć podręczną. Dzięki.
juanram0n

To właściwie najpiękniejsza odpowiedź.
John

6

Zdalne debugowanie umożliwia korzystanie z narzędzi programistycznych dla komputerów stacjonarnych:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging


tak, dziękuję, wiem, że już - powinienem o tym wspomnieć, ale czasami nie chcę jej podłączać, ale nadal mam tę opcję
Riesling,

2
Możesz wyczyścić pamięć podręczną w następujący sposób: support.google.com/chrome/answer/2392709
Swonkie

5
Dzięki, fajna byłaby opcja bez opróżniania całej pamięci podręcznej dla wszystkich stron
Riesling

Jest to najbardziej niezawodna opcja, jeśli włączysz Sieć> Wyłącz pamięć podręczną
Rupert Rawnsley

6

Najnowsze wersje Chrome cache bardzo agresywnie. Nawet techniki pomijania pamięci podręcznej, takie jak „ http: // url? Updated = dataecode ” przestały działać. Musisz wyczyścić pamięć podręczną lub uruchomić okno incognito za każdym razem (i upewnij się, że oszczędzanie danych jest wyłączone).


Ciekawe, nie byłem tego świadomy. Czy masz jakieś źródło potwierdzające to roszczenie?
Antoine,

2
Jest to właśnie obserwowane zachowanie podczas tworzenia własnych aplikacji JavaScript. Musiałem określić dyrektywę CACHE-CONTROL: NO-CACHE w nagłówku HTTP mojego deweloperskiego serwera WWW, aby nie oszaleć z powodu błędów, które po prostu nie znikną (ponieważ Chrome nalegał na buforowanie starego kodu). Firefox nie wyświetla tego zachowania.
Greg Searle

4

Jedyny niezawodny sposób, który nie wymaga podłączenia telefonu do komputera to:

1. Wymuś zatrzymanie aplikacji Chrome.

To musi być wykonane w pierwszej kolejności, a nie można ponownie otworzyć Chrome aż do zakończenia czynności. Istnieje kilka sposobów wymuszenia zatrzymania. Większość domowych programów uruchamiających pozwoli Ci przejść do „Informacji o aplikacji”, przytrzymując palec na ikonie chromu i wybierając ikonę „i”. Alternatywnie możesz przejść do ustawień Androida i po prostu wyszukać „Chrome”.

W „Informacje o aplikacji” wybierz „Wymuś zatrzymanie”, jak pokazano poniżej:


2. Wyczyść pamięć podręczną Chrome

Wybierz „Pamięć” na tym samym ekranie:


Na koniec wybierz „Wyczyść pamięć podręczną”.

Po powrocie do aplikacji Chrome strona powinna się ponownie załadować i udostępnić wersję niebuforowaną.

Ponadto znalazłem witrynę, która ułatwia testowanie, jeśli wyczyściłeś pamięć podręczną: https://refreshyourcache.com/en/cache-test/
Nie jestem w żaden sposób z nią związany. Należy pamiętać, że metoda czyszczenia pamięci podręcznej wymieniona w tej witrynie jest w rzeczywistości nieaktualna i nie jest już ważna.


1
Idealnie, to jedyne rozwiązanie, które działało dla mnie bez debugowania USB.
Luis Lema

2

EDYCJA: Ta metoda jest przestarzała w Google Chrome i nie będzie już działać.

ORYGINALNA ODPOWIEDŹ:

Udało mi się wyczyścić pamięć podręczną (w tym kolejne xhr) za pomocą chrome: // net-internals

chromowane elementy wewnętrzne netto

Następnie kliknij małą strzałkę w prawym górnym rogu

menu

Wybierz „wyczyść pamięć podręczną” z tego menu.


W Chrome 75 chrome: // net-internals mówi „Przeglądarka zdarzeń net-internals i powiązana z nią funkcjonalność zostały usunięte ...”
Bort

@Bort dzięki za heads up. Wygląda na to, że ta metoda nie będzie działać.
Tom Kay

1

Oto kolejne proste rozwiązanie, które może zadziałać, gdy inne zawiodą:

Dzisiaj dość proste rozwiązanie po stronie programisty działało dla mnie, gdy problemem buforowania był buforowany plik CSS. W skrócie: Utwórz tymczasową kopię pliku HTML i przejdź do niej, aby zaktualizować pamięć podręczną CSS.

Ta sztuczka może odświeżyć plik CSS, przynajmniej w domyślnej przeglądarce Androida oznaczonej niebieską kulą ziemską (ale całkiem prawdopodobne, że jest to bliźniak, oficjalna przeglądarka Chrome, a także inne przeglądarki, które spotykamy na „smartfonach” z tendencją do agresywnego buforowania ).

Detale:

Najpierw wypróbowałem niektóre dość proste rozwiązania udostępnione tutaj, ale bez powodzenia (na przykład wyczyszczenie najnowszej historii konkretnej witryny, ale nie miesięcy i miesięcy). Mój najnowszy CSS nie zostanie jednak zastosowany po odświeżeniu. I nawet pomimo tego, że użyłem już sztuczki numer wersji w wywołaniu pliku CSS w sekcji nagłówka html, która pomogła mi w przeszłości uniknąć tych nieznośnych agresywnych buforów. (przykład: link rel = "stylesheet" href = "style.css? v = 001", w którym aktualizujesz ten pseudo-numer wersji za każdym razem, gdy zmieniasz plik CSS, np. 001, 002, 003, 004 ... (należy to zrobić w każdym pliku HTML witryny))

Tym razem (sierpień 2019 r.) Aktualizacja numeru wersji pliku CSS już nie wystarczała, ani niektóre z prostszych środków wymienionych tutaj nie działały dla mnie, ani nie mogłem nawet uzyskać dostępu do niektórych z nich (na pożyczonym telefonie z Androidem).

W końcu wypróbowałem coś stosunkowo prostego, co w końcu rozwiązało problem:

Zrobiłem kopię pliku index.html strony, nadając jej inną nazwę (indexcopy.html), przesłałem ją, przejrzałem na urządzeniu z Androidem, a następnie wróciłem do oryginalnej strony, odświeżiłem ją (z przyciskiem odświeżania po lewej stronie pasek adresu) i voilà: Tym razem odświeżenie pliku index.html w końcu zadziałało.

Objaśnienie: Najnowsza wersja pliku CSS została ostatecznie zastosowana na Androidzie podczas odświeżania strony HTML, ponieważ buforowana kopia pliku CSS została zaktualizowana, gdy plik CSS został wywołany z tymczasowej strony HTML o innej nazwie, która nigdzie nie istniała w historii przeglądarki i żebym mógł później usunąć ponownie. Agresywne buforowanie najwyraźniej zignorowało adres URL CSS i przeszło pod adres URL HTML, mimo że to plik CSS wymagał aktualizacji w pamięci podręcznej.


Niestety, to jedyny, który wydaje się dzisiaj działać. Oznacza to, że za każdym razem, gdy pracujesz na css, musisz aktualizować functions.php w wordpress, aby zaktualizować wersję. Tak, kolejna głupia rzecz w Google, która nie myśli i jest teraz z Microsoftem. Ale tak, stara sztuczka :)
Gavin Simpson

1

Jeśli to tylko kwestia dołączonych plików, po prostu dodaj wersję po path ( ?v=12345678)

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />

Ktokolwiek ponownie wczyta stronę, zobaczy zmiany.


1
Niedoceniana świetna odpowiedź!
lisandro
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.