Jak naprawdę opróżnić pamięć podręczną Safari?

16

Było wiele razy, kiedy napotkałem problem po edycji HTML na komputerze Mac. Problem wynika z tego, że przesłałem zaktualizowany plik na mój serwer przez FTP, a ja przejdę do witryny w przeglądarce Safari. Jedną z rzeczy, które nie działały poprawnie, było to, że Safari już buforowało stronę (stara wersja), więc wyświetli starą wersję. Pomyślałem sobie i postanowiłem wyczyścić pamięć podręczną w Safari, mając nadzieję, że rozwiąże to mój problem. Wyczyszczenie pamięci podręcznej pozwala jedynie na ponowne załadowanie strony. Nadal wymyślił starą wersję pliku. Aby udowodnić, że plik na serwerze został faktycznie zaktualizowany, dostałem się na inny komputer Mac w tej samej sieci i wyświetliłem nową wersję pliku. Bez względu na to, ile razy odświeżyłem lub wyczyściłem pamięć podręczną lub ponownie otworzyłem Safari, zawsze dostarczałby stary plik. Jedynym innym rozwiązaniem, jakie mogłem wymyślić, było ponowne uruchomienie. Po ponownym uruchomieniu Safari ponownie załadowało całą witrynę i wyświetliło nową wersję pliku.

Naprawdę zastanawiam się, jak opróżnić pamięć podręczną Safari i sprawić, by zachowała się poprawnie. Czy to coś, co robi system operacyjny (miałem podobne problemy z plikami na dysku twardym)? Nie chcę przez cały czas uruchamiać się ponownie, aby zobaczyć nową wersję pliku, więc czy mogę w jakiś sposób upewnić się, że przeglądam najnowszą? Czy istnieje folder tymczasowego przechowywania, który mogę ręcznie usunąć? Zdarza mi się to dość często (niezbyt często, ale wystarczająco, żebym to zauważył), a moim jedynym obecnym rozwiązaniem jest restart.

Mam dziwne przeczucie (to nie jest tak naprawdę myśl, ale bardzo mała możliwość, która nie ma większego sensu), że pochodzi z niższego poziomu.

Andrew Larsson
źródło
Używasz chrome (lub opery)?
Fałszywe imię
Wolę używać Firefoksa, ale rozwijam się, więc muszę przetestować swoją witrynę we wszystkich przeglądarkach, w tym w Safari.
Andrew Larsson
Przydatne może być użycie curlwiersza polecenia do żądania adresu URL, aby zobaczyć, co on wymyśli. Stara strona czy nowa? Ponieważ w curlogóle nie ma pojęcia „buforowania” czegokolwiek, powie ci to, czy ktoś po drugiej stronie (lub na ścieżce między) robi buforowanie, którego nie chcesz. Twój serwer może być tutaj prawdziwym winowajcą! Czy buforuje pliki, które obsługuje? Betcha to jest. . .
Mike Robinson

Odpowiedzi:

14

W przeglądarce Safari przytrzymaj klawisz ( Shift), klikając przycisk odświeżania. Spowoduje to wykonanie „twardego” odświeżenia, które ominie lokalną pamięć podręczną.

(Aby szybko wyczyścić pamięć podręczną w przeglądarce Safari, naciśnij + + E, przejdź do Prywatność i kliknij „Usuń wszystkie dane witryny” ).

Mathias Bynens
źródło
Zdecydowanie spróbuję, gdy następnym razem napotkam ten problem. To jedna rzecz, której jeszcze nie zrobiłem. Próbowałem zresetować Safari, wyczyścić pamięć podręczną, a nawet wylogować się i zalogować ponownie. Dziękujemy za świetną odpowiedź!
Andrew Larsson
2
Safari jest nieco mylące w tym aspekcie, ponieważ większość innych przeglądarek używa + + Rdo przeprowadzenia twardego odświeżania. W Safari nic to nie robi, chyba że podczas konfigurowania kombinacji klawiszy skoncentrujesz się na Narzędziach dla webmasterów.
Mathias Bynens
Na razie przyjmuję twoją odpowiedź, dopóki ktoś nie przyjdzie z lepszym wyjaśnieniem ze sprawdzonym rozwiązaniem ignoranckiego buforowania, którego doświadczam. Dzięki!
Andrew Larsson
1
@AndrewLarsson W każdym razie po twardym odświeżeniu powinieneś zawsze pobrać najnowszą wersję, zakładając, że nie dzieje się dziwne buforowanie po stronie serwera. Co mi przypomina, jakie nagłówki buforowania wysyła serwer wraz z plikiem? Może to być problem z konfiguracją serwera.
Mathias Bynens
To była kolejna rzecz, o której myślałem. Jeśli serwer zwraca 304, a tak naprawdę powinien zwracać nową zawartość, to muszę coś zmienić w mojej konfiguracji. Zbadam to następnym razem, gdy napotkam ten problem.
Andrew Larsson
2

Gdy Safari nie wyczyści pamięci podręcznej:

  1. Upewnij się, że wylogowałeś się ze wszystkich stron i zamknąłeś wszystkie karty Safari.

  2. Otwórz Finder i wybierz Idź → Idź do folderu ... na pasku menu. (Alternatywnie możesz użyć skrótu klawiaturowego, Command+ Shift+ g.)

  3. Skopiuj i wklej następujące elementy do menu rozwijanego:

    ~/Library/Safari/Databases

  4. Usuń całą zawartość pojawiającą się w tym folderze, podświetlając wszystkie foldery, klikając prawym przyciskiem myszy i wybierając Przenieś do kosza.

  5. Otwórz Safari ponownie i sprawdź, czy wszystkie elementy są teraz usunięte.

  6. Jeśli nic nie pojawia się podczas wyszukiwania powyższych kryteriów, wyszukaj

    ~/Library/Safari/Local Storage

    i wykonaj kroki 4 i 5 powyżej, aby usunąć całą zawartość.

Suzanna
źródło
Pamiętaj, że chociaż Safari mówi powyżej, że „usunie wszystkie dane witryny”, prawda jest taka, że ​​tak naprawdę nie jest . Ale jeśli wyczyścisz zawartość różnych wymienionych tutaj folderów, zrobi to.
Mike Robinson
1

Miałem dokładnie ten sam problem, tyle że zauważyłem, że działo się to również z innymi przeglądarkami. Jak się okazuje, nie był to Safari ani OSX, to pamięć podręczna utworzona przez usługodawcę.

Aby rozwiązać problem, umieszczam kod na mojej stronie, aby zapobiec buforowaniu.

content = „no-cache”

„Niektóre osoby wiedzą o buforowaniu w przeglądarce, ale nadal są zaskoczone buforowaniem przez ISP. Buforowanie ISP działa podobnie jak buforowanie w przeglądarce. Po odwiedzeniu strony internetowej dostawca usług internetowych może buforować te strony, aby wyglądały na szybsze ładowanie przy następnej wizycie. Główny problem polega na tym, że w przeciwieństwie do pamięci podręcznej przeglądarki nie można usunąć tych plików tymczasowych, zamiast tego trzeba poczekać, aż pamięć podręczna dostawcy usług internetowych wygaśnie i poprosi o nowe kopie plików. Może to być bardzo frustrujące, jeśli próbujesz opracować lub wprowadzić zmiany w swojej witrynie - a nawet spojrzeć na nowe informacje ”.

James
źródło
Czy możesz przywrócić pełny kod (tak jak w pierwszej wersji odpowiedzi)? Jeśli umieścisz cztery spacje na początku linii, nie powinno być żadnych problemów z formatowaniem.
nohillside
To dobra uwaga i spróbuję następnym razem. Nie jestem jednak pewien, jak dobrze by się to odnosiło do sytuacji opisanej w pytaniu, ponieważ używane przeze mnie komputery Mac znajdowały się w tej samej sieci i miały ten sam globalny adres IP (więc dostawca usług internetowych nie byłby w stanie określić różnica między nimi).
Andrew Larsson