溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ASP.NET中怎么實(shí)現(xiàn)UpdatePanel更新

發(fā)布時(shí)間:2021-07-15 15:27:27 來(lái)源:億速云 閱讀:199 作者:Leah 欄目:編程語(yǔ)言

ASP.NET中怎么實(shí)現(xiàn)UpdatePanel更新,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

多個(gè) UpdatePanel

一個(gè)頁(yè)面可以承載幾個(gè)UpdatePanel。默認(rèn)情況下,當(dāng)一個(gè)頁(yè)面上的 UpdatePanel更新時(shí),該頁(yè)面的其他 UpdatePanel也會(huì)更新。有時(shí)候這是您想要的,但多半您并不需要每個(gè) UpdatePanel更新來(lái)響應(yīng)其他 UpdatePanel。
通過(guò)將頁(yè)面上每個(gè) UpdatePanel 控件的 UpdateMode 屬性設(shè)置為 Conditional,您可以選擇更新哪個(gè) UpdatePanel 實(shí)例(及更新的時(shí)間)。然后,在 UpdatePanel更新和調(diào)用服務(wù)端事件處理程序的時(shí)候,請(qǐng)調(diào)用您要更新的其他面板上的 UpdatePanel.Update。這樣可以通過(guò)減少呈現(xiàn)的控件的數(shù)量來(lái)減輕服務(wù)器的負(fù)載,而且它還減少了響應(yīng)中的數(shù)據(jù)量,因?yàn)椴贿M(jìn)行更新的 UpdatePanel 不會(huì)將任何數(shù)據(jù)添加到響應(yīng)中。

不使用 UpdatePanel更新

AJAX 不僅可以創(chuàng)建更好的用戶體驗(yàn),它還可以提供更高效的網(wǎng)絡(luò)通信。當(dāng)發(fā)生傳統(tǒng)的 ASP.NET 回發(fā)時(shí),Web 窗體中包括視圖狀態(tài)在內(nèi)的所有數(shù)據(jù),都會(huì)傳輸?shù)交匕l(fā)中的服務(wù)器。視圖狀態(tài)是 ASP.NET 頁(yè)面,尤其是使用 DataGrid 和 GridView 控件的 ASP.NET 頁(yè)面似乎會(huì)反應(yīng)遲緩的一個(gè)原因。具有太多視圖狀態(tài)的頁(yè)面會(huì)降低性能,并且具有太多視圖狀態(tài)的頁(yè)面在 ASP.NET 應(yīng)用程序中都太常見(jiàn)。

用 AJAX 回調(diào)替代 ASP.NET 回發(fā)的好處之一是能正確完成,AJAX 回調(diào)僅傳送需要被傳送的數(shù)據(jù)。這意味著,它們不必將視圖狀態(tài)包括在該傳輸中。

當(dāng)您使用 UpdatePanel 在一個(gè)頁(yè)面上執(zhí)行無(wú)閃爍更新時(shí),您可能會(huì)認(rèn)為您在進(jìn)行高效構(gòu)建。畢竟,UpdatePanel 使用的是 AJAX,不是嗎?不幸的是,如果您在 UpdatePanel更新時(shí)檢驗(yàn)一下網(wǎng)絡(luò)中的通信,您會(huì)發(fā)現(xiàn)您根本就沒(méi)有保存什么東西,至少是在發(fā)送的時(shí)候沒(méi)有保存。通常在回發(fā)期間傳送到服務(wù)器的視圖狀態(tài)數(shù)據(jù)(與其他數(shù)據(jù))也會(huì)在 UpdatePanel 回調(diào)期間傳送。事實(shí)上,來(lái)自 UpdatePanel 的異步 XML-HTTP 請(qǐng)求中所增長(zhǎng)的數(shù)據(jù)幾乎與在標(biāo)準(zhǔn) ASP .NET 回發(fā)中增長(zhǎng)的數(shù)據(jù)相同。下面是有關(guān) ASP.NET AJAX 不可告人的秘密:UpdatePanel 雖易于使用,但是通信效率不高。

幾乎沒(méi)有什么辦法可讓您提高 UpdatePanel 的效率,但是您可以放棄使用 UpdatePanel,并轉(zhuǎn)而使用 ASP.NET AJAX 的其他功能來(lái)更新頁(yè)面內(nèi)容,它不僅同樣流暢,而且更加高效。它只需要多一點(diǎn)點(diǎn)力氣,但是***的結(jié)果往往讓人覺(jué)得是值得付出的,因?yàn)槟梢源蟠蠼档驮诳蛻舳伺c服務(wù)器之間傳輸?shù)臄?shù)據(jù)量。

您還可以減少服務(wù)器上的負(fù)載。當(dāng) UpdatePanel 回調(diào)到服務(wù)器時(shí),被回調(diào)定為目標(biāo)的頁(yè)面會(huì)完成幾乎整個(gè)生命周期 — 該頁(yè)面會(huì)被實(shí)例化,該頁(yè)面中的控件也會(huì)被實(shí)例化,并且 UpdatePanel 內(nèi)的控件也會(huì)完成一個(gè)正常呈現(xiàn)循環(huán)。那是更新該網(wǎng)頁(yè)一部分的大筆開(kāi)銷。

作為示例,請(qǐng)考慮頁(yè)面段。它提供了一個(gè)允許用戶鍵入郵政編碼的簡(jiǎn)單 UI,并且單擊按鈕就可以用城市和州來(lái)初始化城市和州字段。所有的控件都承載在 UpdatePanel 中,因此 Button 控件的回發(fā)被轉(zhuǎn)換為異步回調(diào),并且事件處理程序 (GetCityAndState) 會(huì)被調(diào)用到該回調(diào)內(nèi)部的服務(wù)器上。GetCityAndState(未顯示代碼)從郵政編碼文本框中讀取郵政編碼,將其轉(zhuǎn)換成城市和州,并相應(yīng)地初始化表示城市和州的 TextBox 和 DropDownList。

看完上述內(nèi)容,你們掌握ASP.NET中怎么實(shí)現(xiàn)UpdatePanel更新的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI