2016-12-07 21 views
6

Potrzebuję przeładować stronę w wyniku połączenia ajax.Załaduj ponownie stronę z location.href lub window.location.reload (true)

widzę jakiś kod (nie moje) i istnieją dwa sposoby:

success : function(obj) { 
//code 
     location.href = location.href; 
    } 

lub

success : function(obj) { 
//code 
     window.location.reload(true); 
    } 

Czy jest jakaś różnica w zachowaniu? Znam różnicę zarówno lokalizacji, jak i lokalizacji okna, ale pod względem wykonywania pracy?

+3

Prawdopodobny duplikat [Różnica między window.location.href = window.location.href i window.location.reload()] (http://stackoverflow.com/questions/2405117/difference-between-window-location- href-window-location-href-and-window-location) –

+2

'window.location.reload (true);' przeładowuje stronę z serwera zamiast z pamięci podręcznej, 'window.location.reload();' wykonaj to samo, co 'location.href = location.href;' z wyjątkiem tego, że 'window.location.reload()' zawiera post. –

Odpowiedz

8

Główną różnicą jest następujący:

window.location.reload() przeładowuje aktualną stronę z POST danych, natomiast window.location.href = 'adres URL' nie obejmuje dane POST.

Co więcej, metoda przeładowania strony z serwera. Przeglądarka pominie pamięć podręczną.

Na przykład widzę, że używasz funkcji success z żądania AJAX.

Załóżmy, że masz sposób następujący:

[OutputCache(Duration=600)] 
public ActionResult Homepage(){ 
    //code here 
    return View(); 
} 

Jeśli używasz window.location.href="location_URL", dane cache dla 600 sekund, co oznacza 10 minut.

Z drugiej strony, jeśli używasz window.location.reload(true), przeglądarka pominie pamięć podręczną, a następnie przeładuje stronę z serwera.

+0

Ok, dzięki. To jest to, czego potrzebuję, aby przeładować z serwera. – pmirnd

Powiązane problemy