2013-07-18 7 views
6

Ich weiß wie warten auf Ajax zu vervollständigen, aber wenn ich eine Seite umleiten werde, nachdem einige Ajax Anrufe abgefeuert werden, sollte ich warten, bis sie vor der Weiterleitung abgeschlossen? Ist es wichtig?Sollte ich auf Ajax warten, um eine Seite umzuleiten?

+5

Ich denke, das hängt davon ab, ob Sie einige Fehlerbehandlung um den Statuscode von der Ajax-Aufruf zurückgegeben werden müssen. Wenn du weiterleitest, bevor es fertig ist, wie würdest du wissen, dass es richtig durchgegangen ist? – JanR

Antwort

5

Wenn Sie sicher sind, dass der Ajax-Anruf erfolgreich ist, hat das Umleiten nach dem Aufrufen des Ajax-Anrufs keinerlei Auswirkungen auf Ihren Server. Aber vergessen Sie nicht, dass der Client seine Verbindung verlieren könnte oder eine Anzahl von Fehlern auftreten könnte, so dass Sie wahrscheinlich warten sollten, um sicherzustellen, dass die Anrufe erfolgreich waren. Eine andere Sache, die Sie beachten sollten, ist, ob Ihre Ajax-Anrufe die Seite beeinflussen, auf die Sie umleiten werden. In diesem Fall warten Sie DEFINITIVE, bevor Sie umleiten. Sie möchten nicht, dass Ihr Benutzer auf eine defekte Seite umgeleitet wird, weil die Verbindung zu langsam war oder der Server einen Schluckauf hatte.

+0

Wahr wahr. Ein Ajax-Aufruf, der beispielsweise Seitenaufrufe zählt, kann nur von einem vergessenen ausgelöst werden. – Lix

+1

Ist Ajax eine gute Möglichkeit, Seitenaufrufe zu zählen? Zählt Nutzer mit deaktiviertem JS nicht. –

+0

Nur etwa 2% der Benutzer haben JavaScript deaktiviert: http://StackOverflow.com/Questions/9478737/Browser-Statistics-on-Javascript-Disabled. Es hängt wirklich davon ab, wie genau du sein willst ... Normalerweise ignoriere ich diese Leute persönlich. – adavea

1

Ich empfehle, mögliche Fehler zu warten und zu behandeln.

Sie erhalten eine sichere Verbindung, Fehlererkennung, bessere Software, indem Sie den gesamten Prozess synchron ausführen, wodurch die Umleitung am Ende kommt.

Sie könnten 0,1 Sekunden mehr Ausführung verbringen, aber wen interessiert das?

+0

Nicht wahr, es ist der Prozess, was ich von Ajax tun möchte, ist was für 20 Sekunden geht. Also interessiert dich. – vaso123

+0

Schon eine Weile, seit ich diesen Kommentar gemacht habe. Was ich hätte klar sein müssen, und ich im Grunde genommen das gleiche wie die angenommene Antwort, ist, dass, wenn Sie absolut garantieren können, dass die Ausführung erfolgreich sein wird dann sicher, können Sie umleiten, aber es besteht eine Chance, dass die Verbindung wird einfach verloren gehen oder eine Ausnahme wird kommen, die Sie behandeln möchten. – Jonast92

1

Ich würde argumentieren, dass Ajax gefolgt von einer Umleitung ist kein guter Anwendungsfall für Ajax. Stattdessen würde ich empfehlen, eine reguläre Serveranfrage zu machen und sich dann um alle Operationen auf dem Server zu kümmern, bevor Sie zu Ihrem endgültigen Ziel weitergeleitet werden.

Dies wird für ein einfacheres Muster und viel weniger Netzwerkverkehr sorgen. Ich empfehle Ajax in Fällen zu verwenden, in denen Sie das erneute Laden der Seite vermeiden möchten. In Ihrem Szenario planen Sie jedoch, die Seite zu verlassen, sobald Ihre Operationen abgeschlossen sind, also warum vermeiden Sie nicht das hin und her, das Ihnen Ajax geben wird.

Verwandte Themen