2008-12-13 39 views

回答

15

我勸你不要在UpdatePanel包裝的整個頁面,其原因如下:

  • 如果您希望您的網站被搜索引擎索引,你將需要顯示你的內容在單獨的頁面上 ...只在每個內容部分有不同的查詢字符串就足夠了。這是因爲對於搜索引擎內容爲國王,由於搜索引擎目前無法爲動態生成的數據編制索引,因此他們將無法爲您的網頁編制索引。

  • 封裝在一個Update Panel整個頁面是因爲,被髮送到服務器巨大的開銷非常危險。如果你這樣做,你會看到顯着的性能下降。閱讀this article對由於這種巨大的開銷的主題

  • 更多信息,建議使用網站的Update Panel更新只是小部分(像小框控件就在旁邊,等...)而不是整個內容部分。

  • 在更新面板中包裝內容部分意味着您必須自己動手更改網址(使用#錨點)來動態更改網址,這樣您才能讓用戶使用後退按鈕在他們的瀏覽器上轉到網站的上一部分。 不必回去頁面的能力是用戶


非常討厭這裏是一個與UpdatePanel小號演示該問題的例子。

以下是一個標籤和一個按鈕,一個簡單的aspx頁面代碼:

<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(); 
} 

而下面是與UpdatePanel做了部分回發按鈕被按下時, (注意巨大的開銷參與):

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

正如你所看到的,服務器基本上將所有那些在UpdatePanel返回給客戶端的元素。


在另一方面,這裏要說的是涉及使用ASP.Net Page Methods一個例子。注意從服務器這次發送的響應(沒有UpdatePanel的參與):

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

+0

是有道理的 - 感謝 – JohnIdol 2008-12-13 13:06:37

相關問題