2010-07-12 10 views
6

Ich höre immer wieder, dass die ASP.NET AJAX-Server-Steuerelemente (wie UpdatePanels) nicht wirklich AJAX sind, obwohl sie so aussehen, weil das Rendering nicht vollständig auf der Client-Seite ist. Ich versuche das klarer zu verstehen. Könnte jemand etwas ausarbeiten?MS UpdatePanels nicht wirklich AJAX?

Dank ...

+0

Gute Frage. Dies könnte mehr darüber sein, wie es zuerst macht Postbacks zu machen ... aber ich könnte völlig von der Basis abweichen. –

+2

Sie * sind * AJAX, sie sind nur * auch * aufgebläht und durchlaufen eine ganze Seite Rendering Life-Cycle auf dem Server, sie sind eine schnelle Lösung, aber * sehr * ineffizient. –

Antwort

12

Update kam ziemlich früh in der AJAX-Zyklus aus, und sie sind schwer (sie um 100-300k von JavaScript emittieren kann). Hinter den Kulissen veröffentlichen UpdatePanels die gesamte Seite über ein JavaScript XMLHttpRequest zurück auf den Server. Die neue Seite wird wie ein Postback mit dem normalen Seitenlebenszyklus generiert, aber nur die Teile, die im UpdatePanel enthalten sind (sowie die Teile, die für die Aktualisierung von ViewState usw. erforderlich sind), werden zurück an den Client gesendet. Von dort wird das Markup ohne sichtbaren Blitz oder Unterbrechung des Seitenstatus eingefügt.

Die meisten konkurrierenden AJAX-Tools neigen zu superleichten Implementierungen, mit denen Sie ein kleines Stück HTML über Javascript versenden oder generieren können. Ich würde sagen, dass dies heute die dominierende Richtung ist, besonders außerhalb der ASP.NET-Welt.

Der Unterschied in der Gesamtmenge der über die Leitung gesendeten Daten ist enorm - siehe untenstehenden Link. In verkehrsschwachen Situationen macht das vielleicht keinen Unterschied, aber im Falle einer Site wie StackOverflow würde es auf der Bandbreite Rechnung sicher erscheinen.

Alles, was gesagt, ich glaube nicht, es ist fair zu sagen, dass Update ist nicht wirklich AJAX, da sie Schiff HTML tun um über ASYNCH JavaScript - es ist nur, dass es ein riesiger, oft umständlich Rahmen an der Spitze. UpdatePanels bekommen manchmal einen schlechten Ruf, aber sie bieten eine brillant einfache Entwicklererfahrung. Ich habe sie oft in verkehrsschwachen Situationen nützlich gefunden.

Update:Here ist ein Artikel (alt, aber immer noch gültig), der die Nutzlast UpdatePanels Versand an und von dem Server untersucht. Es geht auch in Page Methoden, die eine leichte, Web-Service-basierte Alternative zu UpdatePanels ist. Dies ist ein oft übersehener Teil von Microsoft AJAX.

+0

tl; dr; Sie sind per definitionem, aber das meiste, was sie tun, ist ein Postback und einige Rendering zu beseitigen. Gute Beschreibung. – mbillard

+0

@GoodEnough - Danke. :) Ich stimme dir zu, obwohl ich denke, dass die Beseitigung eines schweren Server-Roundtrips und Renderings der Hauptpunkt der meisten AJAX-Tools ist. Und ich werde auch sagen, dass das Rendering in manchen Fällen eine große Sache ist. Ich hatte eine Situation, in der ich eine Front-End-Optimierung für einen riesigen Geschäftsaspekt ASPX ausführte, und wie sich herausstellte, war der perfekter Flaschenhals nicht die Datenbank oder sogar das Netzwerk - es wurde gerendert! –

+0

@Brian - Ja, Rendering kann ein sehr großes Problem sein (wir haben Probleme mit IE-Benutzern in einer unserer Anwendungen).UpdatePanels funktionieren so lange, bis Sie mit größeren Seiten mit vielen Daten und einem großen ViewState (verdammt ViewState) arbeiten. – mbillard

1

http://msdn.microsoft.com/en-us/magazine/cc163480.aspx

Vielleicht beantworten ???

Ich hoffe. (Lesen Sie es auch).

Scheint mir, dass das Steuerelement ein serverseitiges Objekt ist, das Ajax als Mechanismus verwendet und dass der Ajax gerendert wird, um die Clientseite zu tun. In diesem Sinne ist es kein reiner Ajax, sondern eine Mischung mehrerer Lösungen.

:)

Verwandte Themen