2010-07-21 27 views
2

我想通過Asp.net版本4.0和ajax實現以下頁面,但我希望通過加載項目1和2等命令加載。我有容器或Web部件,但大部分容器像簡單的asp.net面板。我如何才能實現它?我用updatepanel和更新進度,但它不工作,我以前所期望的。

使用asp-ajax加載項目並增加web應用程序的速度

alt text http://www.radansanat.com/mypage.jpg

+0

內容是否來自不同的數據源/遠程連接?如果不是,我會建議一次加載全部。 – Rabid 2010-07-23 12:21:07

+0

不,他們是不同的,他們有不同的加載時間。 – kamiar3001 2010-07-25 07:01:16

+0

這種方法的優點是你可以提高你網站的速度,並且還可以選擇哪些內容必須加載得更快,這對網站有重要的內容是有用的。 – kamiar3001 2010-07-25 21:08:33

回答

0

您可以用asp:定時器AJAX控件到頁面加載骨架後啓動所有更新面板加載。在頁面加載1毫秒後加載更新面板1,在100毫秒後面板2加載,200毫秒後再加載3,等等。因爲UpdatePanel控件是同步的,所以它們都會按照你想要的順序依次加載。

+0

但定時器無法理解updatepanel 1完成,它完全加載內容,所以如何可以說1ms後加載面板2如何預測updatepanel 1完成並將更新面板2,他們是否同時工作,所以訂單是什麼這意味着我說。我認爲很好的解決方案是再次實現updatepanel類或覆蓋添加新的事件handeler,如UpdatePanel_LoadComplete,但我不知道是否可能或不是我只是說它不是好方法,因爲你不能估計何時加載是完成 – kamiar3001 2010-07-30 06:43:35

+0

確實,您無法知道第一個面板何時會完成更新,但正如我所說,更新面板控件是同步的,並且沒有2個更新面板可以同時更新。我親身體驗過它。如果您嘗試同時更新2個面板,它們將逐個更新。這就是要點 - 您可以使用此限制逐個更新系列面板,而不是一次全部更新。計時器延遲並不重要。實際上,您可以嘗試更新第一個計時器中的所有面板,並且應該實現所有面板的順序更新。嘗試一下。 – 2010-07-31 12:04:53

0

其實並不完全正確的定時器失效是不重要的。如果所有計時器同時觸發所有關聯的UpdatePanel,則它們不會一次排隊並逐個觸發。實際上,默認情況下,當一個頁面同時進行多個異步回發時,最近的回發優先。這將從UpdatePanels中取消所有尚未被觸發的異常postabacks。

我同意解決方案是使用AJAX定時器,但您需要啓動下一個定時器完成前面的UpdatePanel完成加載。我自己用JavaScript和.NET服務器端代碼的組合來實現這一點。通過下面的鏈接可以幫助你完成這個任務:

處理多個異步回送: http://disturbedbuddha.wordpress.com/2007/12/12/handling-multiple-asynchronous-postbacks/