資源描述:
《基于ajax技術(shù)的web頁面局部刷新》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于AJAX技術(shù)的Web頁面局部刷新 摘要:由微軟公司推出的VisualStdio2008及其以后的版本的開發(fā)環(huán)境集成了AJAX技術(shù),該技術(shù)為解決Web頁面局部刷新問題提供了非常方便的手段,為網(wǎng)站開發(fā)人員解決了一大難題。本文利用AJAX技術(shù)解決成績錄入中出現(xiàn)的局部刷新問題,實際應(yīng)用證明這種方法行之有效。 關(guān)鍵詞:ASP.NET3.5;ADO.NET;AJAX;SQLServer2005;局部刷新 目前開發(fā)B/S模式受到廣大編程人員的青睞,B/S模式的應(yīng)用也非常廣泛,原因在于和傳統(tǒng)的C/S模式相比較,前者需要
2、過多地考慮客戶端的問題,對于后者,開發(fā)人員只需要把精力放在服務(wù)器端的開發(fā)和功能實現(xiàn)上,客戶端的問題可以完全交給瀏覽器處理。但是在Web頁面開發(fā)過程中,不可避免地會遇到頁面刷新問題,這個問題如果不能很好地解決,會給用戶帶來麻煩,后果是可想而知的。這個問題在VisualStdio2008發(fā)布以前都是由開發(fā)人員編寫大量代碼來解決的,自VisualStdio2008發(fā)布以后,開發(fā)人員就不再使用以前的方法了?! ∮晌④浌就瞥龅腁SP.NET3.5不僅使得部署B(yǎng)/S模式的三層架構(gòu)更加有利于實現(xiàn)顯示、數(shù)據(jù)、邏輯的分開,減少了
3、耦合度,便于維護(hù)。而且集成了AJAX技術(shù),利用AJAX技術(shù)可以非常方便地解決頁面刷新問題?! ∫?、成績錄入系統(tǒng)設(shè)計與實現(xiàn) 本系統(tǒng)采用ASP.NET3.5,ADO.NET和SQLServer2008技術(shù)相結(jié)合的方式來開發(fā)。用ASP.NET3.5開發(fā)前臺的Web頁面,SQLServer2008作為后臺數(shù)據(jù)庫保存數(shù)據(jù),用ADO.NET作為聯(lián)系兩者之間的橋梁。初考成績錄入設(shè)計界面如圖1所示。其中包含已錄入的成績?! 〕煽兊匿浫雽τ诓煌挠脩艨赡苡胁煌男枨螅鞠到y(tǒng)中綜合成績由三部分經(jīng)過加權(quán)得到:平時成績、實驗成績、末考
4、成績。在錄入成績時要求錄入平時成績后,鼠標(biāo)離開該文本框后,自動計算綜合成績并在綜合成績文本框中顯示綜合成績。如果不能解決局部刷新問題,則光標(biāo)不能停留在實驗成績文本框中,這給錄入工作帶來很大麻煩。同樣的問題也會出現(xiàn)在錄入實驗成績和末考成績之后?! 《?、利用AJAX技術(shù)實現(xiàn)局部刷新 幸運地是,微軟公司在VisualStudio2008及其以后版本中集成了AJAX(在VisualStudio2005中需要另外安裝AJAX組件),使用該項技術(shù)可以輕松解決這個問題。該技術(shù)的核心是利用AJAX的異步交互模式,減輕服務(wù)器負(fù)擔(dān)
5、,提高應(yīng)用操作的執(zhí)行效率。它是利用JavaScript和XML技術(shù)的無縫集合。用戶通過瀏覽器發(fā)送指令給AJAX引擎,AJAX引擎將指令傳送給后臺程序,后臺程序?qū)⑻幚淼慕Y(jié)果回送給AJAX引擎,AJAX引擎再將獲得的結(jié)果給瀏覽器顯示出來。 在VisualStudio2008開發(fā)環(huán)境中AJAXExtensions選項卡共有5個控件,在本系統(tǒng)中只用到了其中的兩個:ScriptManager控件和UpdatePanel控件。下面分別介紹文中是如何利用這兩個控件解決全屏刷新問題?! ?.1ScriptManager控件
6、在每個支持ASP.NETAJAX的頁面中有且只能有一個ScriptManager控件,其他控件如UpdatePanel、UpdateProgress和Timer控件需要ScriptManager控件支持才能實現(xiàn)部分頁呈現(xiàn)。因此必須確保ScriptManager控件在頁面的form元素之中。同時需要設(shè)置ScriptManager控件的EnablePartialRendering屬性為true,只有這樣才可以實現(xiàn)頁面的異步局部更新,若為false則實現(xiàn)全頁面的刷新,默認(rèn)為true?! ?.2UpdatePanel控件
7、 通過使用UpdatePanel控件,可以使網(wǎng)頁中元素參與到部分頁更新中,而無需編寫任何客戶端腳本。當(dāng)使用UpdatePanel控件時,頁面行為是獨立于瀏覽器的,并且會減少在客戶端和服務(wù)器之間傳輸?shù)臄?shù)據(jù)量。 將UpdatePanel控件添加在頁面中,設(shè)置頁面中異步局部更新區(qū)域,通過點擊UpdatePanel內(nèi)的ASP.NET3.5服務(wù)器控件,發(fā)出異步回傳請求,服務(wù)器收到請求后返回的是局部更新的內(nèi)容。根據(jù)需要,我們在界面上添加了一個UpdatePanel控件,用于控制頁面上的“末考成績”文本控件txtTestS
8、core。為了確保在文本控件txtTestScore中輸入結(jié)束鼠標(biāo)離開后,UpdatePanel控件能夠?qū)崿F(xiàn)局部刷新,需要對UpdatePanel控件以下屬性進(jìn)行配置?! 。?)UpdateMode屬性 UpdatePanel控件的UpdateMode屬性需要設(shè)置為conditional,這樣UpdatePanel僅在其內(nèi)部控件動作引發(fā)回送時更新(要求ChildrenA