2008-12-13 3 views
7

Kann ich das Bedienfeld "Aktualisieren" in der Masterpage verwenden, um verschachtelte Seiten zu umbrechen, sodass beim Navigieren von einer Seite zum anderen Client nur eine teilweise Aktualisierung (MasterPage wird nicht neu geladen) angezeigt wird.Kann ich UpdatePanel in MasterPage verwenden, um verschachtelte Seiten zu umbrechen?

Wenn ja - wie? Stelle ich einfach ein Update-Panel um die ContentPlaceholder in der Masterseite?

Jede Hilfe wird geschätzt!

Antwort

15

ich Ihnen nicht raten, aus den folgenden Gründen eine ganze Seite in einer UpdatePanel, wickeln:

  • Wenn Sie Ihre Website wollen Index von Suchmaschinen sein, werden Sie zu Anzeige benötigen Ihr Inhalt auf separaten Seiten ... nur eine andere Querystring auf jedem Inhaltsabschnitt ist genug. Dies ist, weil für Suchmaschinen Inhalt ist König und da Suchmaschinen derzeit nicht dynamisch erzeugten Daten indexieren können, werden sie nicht in der Lage sein, Ihre Seiten zu indexieren.

  • ganze Seiten in einem Update Panel Verpackung ist sehr gefährlich wegen des großen Aufwand, die an den Server gesendet wird. Sie werden dann eine deutliche Leistungsminderung feststellen. Lesen Sie this article für weitere Informationen zu diesem Thema

  • Wegen dieser großen Overhead, wird vorgeschlagen, die Update Panel zu Update nur kleine Teilbereiche der Website zu verwenden (wie kleine Box-Widgets auf der Seite, etc ...) und nicht ganze Inhaltsabschnitte.

  • Inhalt Abschnitte in einem Update-Panel zu wickeln bedeutet, dass Sie müssen die extra Meile dynamisch die URL manuell (mit # Anker) manuell selbst gehen, und dies ist so, dass Sie Benutzern die Möglichkeit geben, die Schaltfläche Zurück zu verwenden in ihrem Browser, um zum vorherigen Abschnitt der Site zu gelangen. Nicht mit der Fähigkeit, auf einer Seite zurück zu gehen ist sehr ärgerlich für Benutzer


Hier ist ein Beispiel dafür ist, dass das Problem mit UpdatePanel s demonstriert.

Hier finden Sie Code für eine einfache Aspx-Seite mit einem Label und einem Button:

<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
<asp:UpdatePanel runat="server" ID="up1"> 
<ContentTemplate> 
    <asp:Label runat="server" ID="Label1" Text="Update Me!" /><br /> 
    <asp:Button runat="server" ID="Button1" 
    Text="Postback Update" OnClick="Button1_Click" /> 
</ContentTemplate> 
</asp:UpdatePanel> 

 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    Label1.Text = DateTime.Now.ToLongDateString(); 
} 

Und die folgende ist eine partielle Postbacks mit dem UpdatePanel gemacht, wenn die Schaltfläche geklickt wird (beachte den enormen Aufwand):
                                    alt text http://encosia.com/blog/media/images/updatepanel-payload-response-sm.png

Wie Sie sehen können, ist der Server sendet im Grunde alle Elemente, die in der UpdatePanel zurück an den Client sind.


Auf der anderen Seite, hier ist ein Beispiel, das ASP.Net Page Methods mit beinhaltet. Beachten Sie die Antwort vom Server gesendet diesmal (keine Update beteiligt):

                                        alt text http://encosia.com/blog/media/images/json-payload-response.png

+0

Sinn macht - dank – JohnIdol

+1

Der Artikel ist sehr int auch eresting - Problem ist, Leute sind faul :-) – JohnIdol

+1

Sehr informativ. Nahm viele Artikel auf, um den Overhead von UpdatePanel zu verstehen. Danke vielmals!!! – Nipuna

Verwandte Themen