2008-08-05 24 views
12

Ich habe eine Webanwendung, die ich zu optimieren versuche. Einige der Steuerelemente sind im Dialogstil DIVs ausgeblendet. Daher möchte ich, dass sie nur dann über AJAX geladen werden, wenn der Benutzer sie sehen möchte. Dies ist in Ordnung für Steuerelemente, die meist literal-basierte (verschiedene Menüs und Widgets), aber wenn ich habe, was ich "schmutzige" Steuerelemente nennen - diejenigen, die umfangreiche Informationen zum ViewState schreiben, Tonnen von CSS oder Skript auf der Seite, erfordern viele Referenzen usw. - diese sind scheinbar unmöglich "out of page" zu verschieben, insbesondere wenn man bedenkt, wie ASP.NET auf das Postback reagiert.Einfacher Weg zu AJAX WebControls

Ich erwog eine Art von Schritt, wo ich Render überschreiben, Marker für die Bits finden, die ich herausziehen und AJAX-Platzhalter einfügen möchte, aber der Server-Overhead wirkt nicht nur extrem, sondern fühlt sich auch wie ein kompletter Hack an . Das Schlüsselelement hier sind die Dialogfelder, die Formulare mit Validierungssteuerelementen enthalten, und ich kann mir nicht vorstellen, wie ich die Steuerelemente und ihre erforderlichen Skripts verschieben würde.

In meiner fiebrigen Phantasie, möchte ich dies tun:

AJAXifier.AJAXify(ctlEditForm); 

Leider, ich weiß, das ist ein Traum.

Wie nahe komme ich wirklich zu einer schnellen AJAXification, ohne den Server zu sehr zu belasten?

+0

@ [tags2k] (http://stackoverflow.com/questions/2196/easy-way-to-ajax-webcontrols#2404) - Wenn es hilft, denke ich, dass Sie die Kontrolle für [$ 799] (http://www.telerik.com/purchase/purchase-individual/b219S-kgb.aspx) (minus Subskription und Quellcode) –

Antwort

2

Schauen Sie sich die RadAjax Kontrolle von Telerik - es Sie Update mit vermeiden können, und begrenzen die Menge an Informationen hin und her zwischen Server und Client übergeben durch direkte Beziehungen zwischen erklärt Kontrollen fordern, und Steuerelemente, die „Ajaxified“ sein sollte, wenn die aufrufenden Steuerelemente Postbacks übermitteln.

+0

Das ist genau was ich will, leider ist es 999 $ und das ist einfach nicht im Budget. Ich werde Ihren Beitrag als Antwort markieren, es sei denn, jemand hat eine günstigere Alternative! @Rob: Ich bin stolz zu sagen, dass es kein UpdatePanel in der gesamten Lösung gibt, ich trotz ihnen und dem unglaublich ineffizienten Crust, den sie senden. Das Problem mit dem Versuch, die schmutzigen Steuerelemente aufzuräumen, ist, dass die Täter nicht meine sind - sie sind von Microsoft! – tags2k

0

Schritt eins ist Ihr „dirty“ Stücke zu machen, in sich geschlossene Benutzer steuert

Schritt zwei ist die Bedienelemente auf Ihrer raubend Seite

Schritt drei einzubetten ist jeder Benutzer Steuer Tag in ihrem eigenen Asp zu wickeln : UpdatePanel

Schritt vier ist sicherzustellen, dass Ihre Steuerung die Daten erhält, die sie benötigt, indem sie von Eigenschaften gelesen wird, die den Anzeigezustand auf bereits vorhandene Werte überprüfen. Ich weiß, dass dies Ihren Code auf hässliche globale Variablen setzt, aber es ist ein schneller Weg, dies zu erreichen.

Ihre Laufleistung kann variieren.

1

Ich empfehle Ihnen, dieses Wochenende zu Ihrem örtlichen Buchladen zu gehen, eine Tasse Kaffee zu holen und jQuery in Action von Manning Press zu finden. Gehen Sie voran und lesen Sie das erste Kapitel dieses Buches mit 300 Seiten im Laden, dann kaufen Sie es, wenn es bei Ihnen mitschwingt.

Ich denke, Sie werden überrascht sein, wie einfach jQuery Sie ausführen können, was Sie hier beschreiben. Von Ajax Aufrufe an den Server im Hintergrund zum Anzeigen und Ausblenden von div Tags basierend auf den Aktionen des Besuchers. Die Menge an Code, die Sie schreiben müssen, ist sehr klein.

Es gibt eine Reihe von guten JavaScript-Bibliotheken, das ist nur eine von denen, die ich mag, und es ist wirklich einfach zu beginnen. Beginnen Sie mit einem Verweis auf die aktuelle jQuery-Datei mit einem Tag und schreiben Sie dann ein paar Zeilen Code, um mit Ihrer Seite zu interagieren.