Jak mogę odświeżyć stronę za pomocą jQuery?
javascript
jquery
refresh
reload
luca
źródło
źródło
Odpowiedzi:
Użyj
location.reload()
:reload()
Funkcja przyjmuje opcjonalny parametr, który może być ustawionytrue
, aby wymusić reload z serwera, a nie w pamięci podręcznej.false
Domyślnym parametrem jest , więc strona może zostać ponownie załadowana z pamięci podręcznej przeglądarki.źródło
window.location.href=window.location.href;
ilocation.href=location.href;
pracował.window.location.reload(true);
mocno się odświeży, w przeciwnym razie domyślnie jest to fałszwindow.location.reload()
!Powinno to działać we wszystkich przeglądarkach, nawet bez jQuery:
źródło
Istnieje
wielenieograniczonych sposobów odświeżania strony za pomocą JavaScript:location.reload()
history.go(0)
location.href = location.href
location.href = location.pathname
location.replace(location.pathname)
location.reload(false)
Możesz kontynuować kreatywność listy:
window.location = window.location
window.self.window.self.window.window.location = window.location
źródło
(reload()/(false))
są wolniejsze. hmmm. ciekawy. :) oraz 1 i 6 są takie same, jakreload()
domyślny parametr tofalse
.location.href = location.href
zwykle używam, ale dziękuję za inne. Bardzo przydatne! +1Przypuszczam, że działa wiele sposobów:
window.location.reload();
history.go(0);
window.location.href=window.location.href;
źródło
window.location.href=window.location.href;
nie da, jeśli twój adres URL ma # / hashbang na końcuexample.com/something#blah
:location.reload()
ihistory.go(0)
brzmi: nie ma. Odpowiednia sekcja specyfikacji HTML 5 na w3.org/TR/html5/browsers.html#dom-history-go wyraźnie wskazuje, że są one równoważne: „Pogo(delta)
wywołaniu metody, jeśli argument metody został pominięty lub wartość zero, klient użytkownika musi działać tak, jakbylocation.reload()
zamiast tego została wywołana metoda. ”Aby ponownie załadować stronę za pomocą jQuery:
Podejście, którego tu użyłem, to Ajax jQuery. Przetestowałem go na Chrome 13. Następnie wstawiam kod do modułu obsługi, który uruchomi ponowne ładowanie. URL jest
""
, co oznacza, że na tej stronie .źródło
context
parametru$.ajax
i oczekują, że w jakiś sposób wykona jakąś magię. Wystarczy ustawićthis
wartość funkcji oddzwaniania . Ajax do adresu URL""
trafi w adres URL, na którym aktualnie się znajdujesz, tym samym zwykle ładując pełny kod HTML (w tym<html>
i<head>
i<body>
), i nic w tej odpowiedzi nie odfiltrowuje rzeczy, których nie chcesz.Jeśli bieżąca strona została załadowana przez żądanie POST, możesz użyć
zamiast
ponieważ
window.location.reload()
poprosi o potwierdzenie, jeśli zostanie wywołany na stronie załadowanej przez żądanie POST.źródło
window.location = window.location
jest jednak również niedoskonały; nie robi nic, jeśli w bieżącym adresie URL jest fragment (hashbang).Pytanie powinno brzmieć
Jak odświeżyć stronę za pomocą JavaScript
Jesteś rozpieszczany wyborem.
źródło
Możesz użyć
forceGet
jest wartością logiczną i opcjonalną.Wartość domyślna to false, która ponownie ładuje stronę z pamięci podręcznej.
Ustaw ten parametr na true, jeśli chcesz zmusić przeglądarkę do pobrania strony z serwera, aby pozbyła się również pamięci podręcznej.
Lub tylko
jeśli chcesz szybko i łatwo buforować.
źródło
Trzy podejścia z różnymi zachowaniami związanymi z pamięcią podręczną:
location.reload(true)
W przeglądarkach, które implementują
forcedReload
parametrlocation.reload()
, ładuje ponownie, pobierając świeżą kopię strony i wszystkich jej zasobów (skrypty, arkusze stylów, obrazy itp.). Nie będzie obsługiwał żadnych zasobów z pamięci podręcznej - pobiera nowe kopie z serwera bez wysyłania żadnychif-modified-since
lubif-none-match
nagłówków w żądaniu.Odpowiednik dla użytkownika, który dokonuje „twardego przeładowania” w przeglądarkach, jeśli jest to możliwe.
Należy pamiętać, że przekazywanie
true
dolocation.reload()
jest obsługiwane w Firefox (patrz MDN ) i Internet Explorer (patrz MSDN ), ale nie jest powszechnie obsługiwane i nie jest częścią specyfikacji W3 HTML 5 , ani specyfikacji W3 HTML HTML 5.1 , ani WHATWG HTML Living Standard .W nieobsługujących przeglądarkach, takich jak Google Chrome,
location.reload(true)
zachowuje się tak samo jaklocation.reload()
.location.reload()
lublocation.reload(false)
Ponownie ładuje stronę, pobiera świeżą, niebuforowaną kopię samego kodu HTML strony i wykonuje żądania ponownej walidacji RFC 7234 dla dowolnych zasobów (takich jak skrypty), które są buforowane w przeglądarce, nawet jeśli są one świeże, RFC 7234 pozwala przeglądarce na wyświetlanie je bez przedłużenia ważności.
Dokładnie, w jaki sposób przeglądarka powinna wykorzystywać swoją pamięć podręczną podczas wykonywania
location.reload()
połączenia, nie jest określona ani udokumentowana, o ile wiem; Powyższe zachowanie określiłem eksperymentalnie.Jest to równoważne z naciśnięciem przez użytkownika przycisku „Odśwież” w przeglądarce.
location = location
(lub nieskończenie wiele innych możliwych technik, które wymagają przypisania dolocation
lub do jego właściwości)Działa tylko, jeśli adres URL strony nie zawiera fragmentu / hashbang!
Przeładowuje strony bez refetching lub przedłużania żadnych świeżych zasobów z pamięci podręcznej. Jeśli sam kod HTML strony jest świeży, spowoduje to ponowne załadowanie strony bez wykonywania żadnych żądań HTTP.
Jest to równoważne (z perspektywy buforowania) dla użytkownika otwierającego stronę w nowej karcie.
Jeśli jednak adres URL strony zawiera skrót, nie będzie to miało wpływu.
Ponownie, o ile wiem, zachowanie w pamięci podręcznej jest nieokreślone; Ustaliłem to na podstawie testów.
Podsumowując, chcesz użyć:
location = location
dla maksymalnego wykorzystania pamięci podręcznej, o ile strona nie ma skrótu w adresie URL, w którym to przypadku nie zadziałalocation.reload(true)
aby pobrać nowe kopie wszystkich zasobów bez ponownej walidacji (chociaż nie jest to powszechnie obsługiwane i nie będzie się zachowywać inaczej niżlocation.reload()
w niektórych przeglądarkach, takich jak Chrome)location.reload()
aby wiernie odtworzyć efekt kliknięcia przez użytkownika przycisku „odśwież”.źródło
location = location
nie działa, jeśli w adresie URL znajduje się skrót. W przypadku każdej witryny używającej fragmentów - a nawet każdej witryny, w której ktoś prowadzący do strony może dodać fragment do adresu URL - powoduje to uszkodzenie.window.location.reload()
przeładuje z serwera i ponownie załaduje wszystkie dane, skrypty, obrazy itp.Jeśli więc po prostu chcesz odświeżyć HTML,
window.location = document.URL
powróci on znacznie szybciej i przy mniejszym ruchu. Ale nie przeładuje strony, jeśli w adresie URL znajduje się skrót (#).źródło
location.reload()
wymusza ponowną walidację buforowanych zasobów, nawet bez argumentów, podczas gdy zwindow.location = document.URL
przyjemnością podaje buforowane zasoby bez uderzania w serwer, dopóki są one świeże.Funkcja jQuery
Load
może również wykonać odświeżenie strony:źródło
Ponieważ pytanie jest ogólne, spróbujmy podsumować możliwe rozwiązania odpowiedzi:
Proste proste rozwiązanie JavaScript :
Najłatwiejszym sposobem jest umieszczenie jednego wiersza w odpowiedni sposób:
Wiele osób tutaj brakuje, ponieważ liczą na zdobycie „punktów”, ponieważ sama funkcja reload () oferuje jako parametr logiczny (szczegóły: https://developer.mozilla.org/en-US/docs/Web / API / Location / reload ).
Oznacza to, że istnieją dwa sposoby:
Rozwiązanie 1: Wymuś ponowne załadowanie bieżącej strony z serwera
Rozwiązanie 2: Ponowne ładowanie z pamięci podręcznej lub serwera (w zależności od przeglądarki i konfiguracji)
A jeśli chcesz połączyć to z jQuery i nasłuchiwaniem zdarzenia, polecam użycie metody „.on ()” zamiast „.click” lub innych opakowań zdarzeń, np. Bardziej odpowiednim rozwiązaniem byłoby:
źródło
Oto rozwiązanie, które asynchronicznie ładuje stronę za pomocą jQuery. Pozwala to uniknąć migotania spowodowanego przez
window.location = window.location
. Ten przykład pokazuje stronę, która jest ładowana w sposób ciągły, jak na pulpicie nawigacyjnym. Jest testowany w walce i działa na telewizorze z wyświetlaczem informacyjnym na Times Square.Uwagi:
$.ajax
bezpośrednio jak$.get('',function(data){$(document.body).html(data)})
powoduje, że pliki css / js są pomijane w pamięci podręcznej , nawet jeśli używaszcache: true
, dlatego używamyparseHTML
parseHTML
NIE znajdziebody
tagu, więc całe twoje ciało musi przejść w dodatkowy div, mam nadzieję, że ten samorodek wiedzy pomoże ci któregoś dnia, możesz zgadnąć, jak wybraliśmy id do tegodiv
http-equiv="refresh"
na wypadek, gdyby coś poszło nie tak z czkawką javascript / server, strona WCIĄŻ przeładuje się bez połączenia telefonicznegohttp-equiv
odświeżenie to naprawiaźródło
znalazłem
lub
powoduje również odświeżenie strony.
Dzięki temu znacznie łatwiej jest ponownie załadować stronę, usuwając wszelkie skróty. Jest to bardzo miłe, gdy używam AngularJS w symulatorze iOS, więc nie muszę ponownie uruchamiać aplikacji.
źródło
Możesz użyć metody JavaScript
location.reload()
. Ta metoda akceptuje parametr boolowski.true
lubfalse
. Jeśli parametrem jesttrue
; strona zawsze przeładowywana z serwera. Jeśli tak jestfalse
; która jest domyślna lub przy pustej przeglądarce parametrów przeładuj stronę z pamięci podręcznej.Z
true
parametremZa pomocą parametru
default
/false
Korzystanie z jquery
źródło
Nie potrzebujesz niczego z jQuery, aby przeładować stronę za pomocą czystego JavaScript , po prostu użyj funkcji przeładowania we właściwości location, jak to:
Domyślnie strona zostanie ponownie załadowana przy użyciu pamięci podręcznej przeglądarki (jeśli istnieje) ...
Jeśli chcesz wymusić przeładowanie strony, po prostu przekaż prawdziwą wartość, aby przeładować metodę jak poniżej ...
Również jeśli jesteś już w zakresie okna , możesz pozbyć się okna i wykonać:
źródło
posługiwać się
lub
źródło
Użyj
onclick="return location.reload();"
w tagu przycisku.źródło
Jeśli używasz jQuery i chcesz odświeżyć, spróbuj dodać swoją jQuery w funkcji javascript:
Chciałem ukryć element iframe na stronie po kliknięciu przycisku oh
h3
, dla mnie to zadziałało, ale nie byłem w stanie kliknąć elementu, który pozwolił mi wyświetlić naiframe
początku, chyba że ręcznie odświeżyłem przeglądarkę ... nie idealnie.Próbowałem następujące:
Powinno działać mieszanie zwykłego javascript Jane z jQuery.
źródło
Wszystkie odpowiedzi tutaj są dobre. Ponieważ pytanie dotyczy ponownego ładowania stronyjquery, Właśnie pomyślałem o dodaniu czegoś więcej dla przyszłych czytelników.
Więc zrozumiesz, że podstawą jquerylub jquery oparta jest na javascript. Więc idź z czystymjavascript jest o wiele lepszy, jeśli chodzi o proste rzeczy.
Ale jeśli potrzebujesz jquery rozwiązanie, oto jedno.
źródło
Istnieje wiele sposobów na ponowne załadowanie bieżących stron, ale w jakiś sposób przy użyciu tych metod można zobaczyć stronę zaktualizowaną, ale nie będzie tam kilka wartości pamięci podręcznej, więc obejmij ten problem lub jeśli chcesz wysyłać trudne żądania, użyj poniższego kodu.
źródło
źródło
Proste rozwiązanie JavaScript:
źródło
Prawdopodobnie najkrótszy (12 znaków) - użyj historii
źródło
Możesz to napisać na dwa sposoby. 1st to standardowy sposób przeładowywania strony, zwany również prostym odświeżaniem
A inny nazywa się twardym odświeżaniem . Tutaj przekazujesz wyrażenie logiczne i ustawiasz na true. Spowoduje to ponowne załadowanie strony niszcząc starszą pamięć podręczną i wyświetlając zawartość od zera.
źródło
Jest najkrótszy w JavaScript.
źródło
źródło
Oto kilka wierszy kodu, których można użyć do przeładowania strony za pomocą jQuery .
Używa opakowania jQuery i wyodrębnia natywny element dom.
Użyj tego, jeśli chcesz mieć wrażenie jQuery w kodzie i nie zależy ci na szybkości / wydajności kodu.
Po prostu wybierz od 1 do 10, które odpowiadają Twoim potrzebom, lub dodaj więcej w oparciu o wzorzec i odpowiedzi wcześniej.
źródło