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