Die Wartezeit ist hoch, wenn window.location.href OR .assign oder .reload verwendet wird

9

Ich verwende JavaScript-Weiterleitungen nach dem Ajax-Aufruf (nach dem Update-Inhalt). Ich habe unten Methoden versucht, alle sind sehr langsam. Auf der Registerkarte "Netzwerk" wird angezeigt, dass die Wartezeit ungefähr 4.44 bis 5 Sekunden beträgt. (Was für Kunden sehr frustrierend ist :()

%Vor%

W Wenn Sie die Seite von Seite zu Seite durchsuchen (mit Mausklicks), beträgt die Wartezeit 350ms bis 450ms .

Warum ist das so? Gibt es etwas, das ich vermisst habe oder anders, das schneller ist?

UPDATE:

Wie auf Anfrage von commenter hier unten ist ein Screenshot.

Durch Klicken auf den Link der Seite, normaler Weg.

Nach dem Speichern von Daten und Weiterleiten mit JavaScript-Weg.

    
shyammakwana.me 26.02.2016, 07:28
quelle

2 Antworten

0

Ich habe alle Lösungen in Kommentaren versucht, danke an alle. Wie per Kommentar von @YanjunLin habe ich click ing Element direkt mit jQuery versucht, anstatt window objektbasierte Umleitung. Und es hat funktioniert.

Allerdings ist das Klicken um 60-70% schneller als bei anderen Methoden für meine Anwendung.

Jeder, der in Zukunft hierher kommt, sollte versuchen, auf die Element-Klick-Methode ( $('element selector').click() ) zu klicken, ich hoffe, das wird auch für dich funktionieren.

Bitte beachten Sie, dass dies von der Architektur Ihrer Anwendung abhängt. Es kann vorkommen, dass Window.location.reload/assign etc für Ihre Anwendung schneller ist. Aber Sie können diese Lösung versuchen.

Aktualisierung:

Wie im Kommentar angegeben, ist prefetching auch ein wesentlicher Faktor, wenn Sie viele statische Assets laden müssen Seite laden.

    
shyammakwana.me 08.08.2016, 11:02
quelle
0

Ich glaube, Sie leiden unter Zwischenspeicherung durch Ihren Webserver. Sie können versuchen, die Cache-Einstellungen über META-Tags zu ändern, aber Sie verlieren die Caching-Vorteile. Es gibt einen einfachen Trick, der mir in allen Fällen hilft. Mache die URL, die du einreichst, einmalig, indem du ihr einen Zeitstempel hinzufügst. my_app.php? ts = 1503710749 Diese Eindeutigkeit sollte zu einer sofortigen Verarbeitung durch Ihren Webserver führen.

    
user3155285 26.08.2017 01:36
quelle