2009-12-04 5 views
10

Ich mag, dass wir heutzutage eine Option haben, wie wir unseren Web-Content vom Server bekommen: Wir können eine HTTP-Anfrage im alten Stil (mit einer eigenen URL) erstellen im Browser) oder wir können einen AJAX-Aufruf durchführen und Teile des DOM im laufenden Betrieb ersetzen.Inhalt: AJAX vs. "Regulärer" HTTP-Aufruf

Meine Frage ist das: Wie entscheiden Sie, welche Methode zu verwenden, wenn es eine Option gibt, beide zu verwenden?

In den "alten Tagen" mussten wir die gesamte Seite neu zeichnen (einschließlich der Teile, die sich nicht änderten), wenn wir aktualisierte Inhalte anzeigen wollten. Jetzt, wo AJAX gereift ist, brauchen wir das nicht mehr; wir könnten, denkbar, einmal eine "Seite" rendern und nur die sich ändernden Teile nach Bedarf aktualisieren. Aber was wären die Konsequenzen? Gibt es eine gute Faustregel für das Nachladen einer ganzen Seite im Vergleich zu einem Teil-Reload über AJAX?

Antwort

12

Wenn Sie möchten, dass Benutzer einzelne Seiten mit einem Lesezeichen versehen können, verwenden Sie HTTP-Anfragen.

Wenn Sie den Kontext ändern, verwenden Sie HTTP-Anforderungen.

Wenn Sie zur besseren Wartbarkeit die Funktionalität auf verschiedene Seiten aufteilen, verwenden Sie HTTP-Anforderungen.

Wenn Sie Ihre Seitenaufrufe maximieren möchten, verwenden Sie HTTP-Anfragen.

Viele gute Gründe für die Verwendung von HTTP-Anfragen - Stack-Overflow ist ein wunderbares Beispiel für die Trennung zwischen AJAX- und HTTP-Anfragen. Finden Sie heraus, warum jede Funktion HTTP oder AJAX ist, und ich bin sicher, dass Sie viele weitere Gründe für die Verwendung dieser Funktionen erhalten werden.

+3

Ich bin sehr interessiert an dieser Diskussion. Es gibt jedoch einen Punkt, den ich nicht verstehe: Was meinst du mit "Kontext ändern"? – balteo

+0

Ändern Kontext in diesem Fall wäre etwa so: Ich schaue auf meine Girokonto Informationen Jetzt ändere ich den Kontext, um Hypothekenzinsen zu betrachten. Ich habe die Bankseite nicht verlassen, aber meine Aufgabe hat sich geändert: Ich habe den Kontext geändert. – MikeEL

5

Meine einfache Regel:

alles Ajax tun, vor allem, wenn es sich um eine Anwendung nicht nur Seiten Inhalt. Es sei denn, Menschen werden wahrscheinlich auf direkte Inhalte wie in einem Blog verlinken wollen. Dann ist es einfacher, normale ganze Seiten zu machen.

Natürlich gibt es viele Mischkombinationen, es muss nicht das eine oder das andere komplett sein.

3

Mit AJAX wird ein Teil des Entwicklungsaufwands in Partial-Page-Reloads investiert. Sie müssen zusätzliche JavaScript-Handler für alle zurückgegebenen Daten erstellen. Wenn Sie vollständige HTML-Blöcke zurückgeben würden, müssten Sie immer noch angeben, wohin der Inhalt gehen soll und ob er anderen Inhalt ersetzt. Sie müssten möglicherweise Header-Tags neu rendern, um Inhaltsänderungen widerzuspiegeln, und Sie müssten eine History-Lösung implementieren, um sicherzustellen, dass Suchmaschinen jede Seite indizieren können (z. B. mithilfe des jQuery-Plugins SWFAddress). Wenn Sie JSON-codierte Daten zurückgeben, haben Sie einen zusätzlichen Verarbeitungsschritt.

Der Kompromiss bei reduzierter Bandbreitennutzung durch Verzicht auf eine Seitenaktualisierung wird durch eine Erhöhung der JS-Code- und Ereignisbindungen ausgeglichen, die sich auf die Seitenrendering-Geschwindigkeit und die visuellen Effekte auswirken können.

Es hängt wirklich von Ihrer Zielgruppe und dem allgemeinen Gefühl ab, das Sie auf Ihrer Seite anstreben. AJAX und Preloader sind auffällig, und Menschen Liebe auffällige Dinge. Wenn Sie glauben, dass sich die Endbenutzererfahrung verbessern wird, indem Sie teilweise Seitenladungen hinzufügen, implementieren Sie sie auf jeden Fall.