999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在ASP.NET AJAX中返回DataTable到客戶端Javascript

2011-06-09 10:14:50葛中澤
電子設計工程 2011年24期
關鍵詞:頁面

鄒 蕊,葛中澤

(鄂州職業大學 計算機系,湖北 鄂州 436000)

ASP.NET AJAX[1]是一個完整的開發框架,一直以來為我們所使用,但是在使用ASP.NET AJAX技術的時候不能夠使DataTable直接返回到客戶端Javascript。為了解決這個問題,本文采用了將DataTable轉化為泛型集合對象的方法。

1 AJAX技術介紹

在傳統的Web開發過程中,瀏覽者瀏覽一個Web頁面,并進行相應的頁面填寫時,就需要使用表單向服務器提交信息。當用戶提交表單時,就不可避免的會向服務器發送一個請求,服務器接受該請求后并執行相應的操作后將生成一個頁面返回給瀏覽者。然而,在服務器處理表單并返回新的頁面的同時,瀏覽者第一次瀏覽時的頁面(這里可以當作是舊的頁面)和服務器處理表單后返回的頁面在形式上基本相同,當大量的用戶進行表單提交操作時,無疑是增加了網絡的帶寬,因為處理前和處理后的頁面基本相同。

在C/S應用程序開發中,C/S應用程序往往安裝在本地,這樣響應用戶事件的時間非常的短,而且C/S應用程序可以算的上是有狀態的應用程序,能夠及時捕捉和相應用戶的操作。而在Web端,由于每次的交互都需要向服務器發送請求,服務器接受請求和返回請求的過程就依賴于服務器的響應時間,所以給用戶造成感覺要比在本地慢的多。

為了解決這一問題,通過在用戶瀏覽器和服務器之間設計一個中間層——AJAX層,就能夠解決這一問題,AJAX改變了傳統的Web中客戶端和服務器的“請求——等待——請求——等待”的模式,通過使用AJAX應用向服務器發送和接收需要的數據,從而不會產生頁面的刷新。

AJAX應用通過使用SOAP或其他一些基于XML的Web Service接口,并在客戶端采用JavaScript處理來自服務器的響應,減少了服務器和瀏覽器之間的“請求——回發”操作,從而減少了帶寬。當服務器和客戶端之間的信息通信減少之后,瀏覽者就會感覺到Web應用中的操作就更快了。

AJAX將一些應用的處理交付給客戶端,讓服務器端原本應該運行的操作和需要處理的事務分布給客戶端,這樣服務器端的處理時間也減少了。

相對于傳統的Web開發,AJAX提供了更好的用戶體驗,AJAX也提供了較好的Web應用交互的解決方案,相對于傳統的Web開發而言,AJAX技術也減少了網絡帶寬。AJAX的核心是JavaScript對象XmlHttpRequest。

2 ASP.NET AJAX客戶端異步刷新技術

AJAX(是Asynchronous JavaScript and XML的縮寫,中文含意是 “異步JavaScript和XML”。AJAX技術看似非常的復雜,其實AJAX并不是新技術,AJAX只是一些老技術的混合體,AJAX通過將這些技術進行一定的修改、整合和發揚,就形成了AJAX技術。這些老技術包括有:

1)XHTML:基于XHTML1.0規范的XHTML技術。

2)CSS:基于CSS2.0的CSS布局的CSS編程技術。

3)DOM:HTML DOM,XML DOM等 DON技術。

4)JavaScript:JavaScript編程技術。

5)XML:XML DOM、XSLT、XPath 等 XML 編程技術。

上面的這些技術并不是最新的技術,這些技術已經在現在的開發當中被普遍使用,包括XHTML、CSS和DOM。開發人員能夠使用JavaScript進行Web應用中Web編程和客戶端狀態維護,而通過使用XML技術能夠進行數據保存和交換。

除了上面的一些老技術,AJAX還包含另一個技術,這個技術就是XMLHttpRequest。在AJAX中,最重要的就是XMLHttpRequest對象,XMLHttpRequest對象是 JavaScript對象,正式XMLHttpRequest對象實現了AJAX可以在服務器和瀏覽器之間通過JavaScript創建一個中間層,從而實現了異步通信。AJAX使用現存的技術為客戶端[2]提供了和Web服務器之間進行異步通信的方式,從而讓應用程序可以擺脫傳統請求響應模型的開發方式。AJAX的技術架構,實現機制如圖1所示。

圖1 AJAX的技術架構Fig.1 AJAX’s technical architecture

DataTable是一個臨時保存數據的網格虛擬表。它可以被應用在ASP上。它無須代碼就可以簡單的綁定數據庫。在應用程序開發時,大量使用到DataTable,如查詢數據庫返回表格。但將表格返回到客戶端javascript時,出現“序列化類型為‘System.Reflection.Module’的對象時檢測到循環引用”的錯誤。原因是DataTable算是一個極其復雜的對象類型了,這個類型在進行JSON序列化時,便會產生一個循環引用,在序列化其中的 System.Reflection.Module對象時會發生循環引用,從而會導致 JSON序列化失敗,導致整個的異步調用WebService失敗[3]。那么該如何解決這個問題,使得能夠從服務端順利的返回DataTable中的數據呢?以下將作以介紹。

3 返回DataTable到客戶端Javascript的方法

在服務端與客戶端進行傳遞數據的格式是 JSON(JavaScript Object Notation),這個格式簡單輕便[4]。最常用的數據傳遞和轉換的類型是一般的字符串類型,List集合類型以及字典Dictionary類;其中較為特殊的是Dictionary,其中的第一個類型必須是 string,否則在客戶端將無法識別。而DataTable或者DataSet這些復雜數據類型已經遠遠超出了上面的3種類型的范圍,所以無法進行正常的JSON序列化,只有把DataTable這些復雜數據類型先轉換為上面的3種數據類型再傳遞,才能正常的把DataTable中的數據正確傳遞給 JavaScript返回DataTable到客戶端Javascript的流程如圖2所示。

圖2 返回DataTable到客戶端Javascript的流程Fig.2 The process of returns DataTable to the client

其中第2步和第3步由服務器與客戶端異步通訊[5]層自動完成,不需要我們考慮。

3.1 將DataTable轉化為泛型集合對象

泛型是主要用于解決一系列類似的問題。這種機制允許將類名作為參數傳遞給泛型類型,并生成相應的對象。將泛型(包括類、接口、方法、委托等)看作模板可能更好理解,模板中的變體部分將被作為參數傳進來的類名稱所代替,從而得到一個新的類型定義。下面添加一個類來實現將DataTable轉換為 List或者 Dictionary來返回,類的代碼如下

3.2 在客戶端顯示DataTable

盡管AJAX是種客戶端技術,但實際上的開發過程,它經常要調用一個服務器端[6]的過程。通常,數據是存放在一個關系型數據庫中,為了讓AJAX更有用處,處理服務器端數據需要一種簡單可靠的方法。在服務器端將Datatable轉化為List>>數據后,接下來就是要在客戶端 JavaScript中接受List數據并且解析輸出。

客戶端異步調用服務器端web service的方法為:

4 結 論

通過前面的敘述,我們可以在客戶端使用異步刷新的方法顯示服務器端得表格。我們還可以通過JavaScript修改Table表的行背景顏色,使得Table表的外觀更加美觀;也可以通過JavaScript增加、刪除Table表的行,賦予Table表強大的管理功能。有興趣的讀者可以參閱有關資料。

[1]Esposito D.Microsoft ASP.NET AJAX導學[M].北京:機械工業出版社,2008.

[2]章立民.ASP.NET 3.5 AJAX客戶端編程精選166例[M].北京:科學出版社,2009.

[3]王德永.ASP.NET軟件開發項目實踐[M].北京:清華大學出版社,2011.

[4]張銀鶴.Ajax完全學習手冊[M].北京:清華大學出版社,2009.

[5]關東升.JSP網絡程序設計[M].北京:北京郵電大學出版社,2011.

[6]王健南.ASP.NET AJAX中的Web Services調用[J].農業網絡信息,2007(12):114-180.WANG Jian-nan.Web Services transmission in ASP.NET.AJAX[J].Agriculture Network Information,2007(12):114-180.

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 亚洲区欧美区| 成人福利在线视频| 91视频青青草| 久久午夜夜伦鲁鲁片不卡| 亚洲欧洲AV一区二区三区| 亚洲永久免费网站| 欧美精品导航| 伊人久久综在合线亚洲91| 色婷婷综合激情视频免费看 | 露脸一二三区国语对白| 91色综合综合热五月激情| 亚洲一区二区三区中文字幕5566| 五月丁香在线视频| 日韩欧美色综合| 中文字幕亚洲乱码熟女1区2区| 噜噜噜久久| 国内精品久久久久鸭| 国产精品成人不卡在线观看| 国产女人在线视频| 亚洲黄色视频在线观看一区| 日本在线免费网站| 国产网站一区二区三区| 国产成人av一区二区三区| 精品国产一区91在线| 国产sm重味一区二区三区| 丁香婷婷激情综合激情| 亚洲欧美日韩色图| 欧美专区在线观看| 国产性生大片免费观看性欧美| 无遮挡一级毛片呦女视频| 国产国模一区二区三区四区| 国产精品妖精视频| 亚洲高清无在码在线无弹窗| 777午夜精品电影免费看| 在线观看无码av五月花| 婷婷六月激情综合一区| 国产爽歪歪免费视频在线观看| 亚洲欧美成人影院| 波多野结衣爽到高潮漏水大喷| 免费在线观看av| AV无码无在线观看免费| 免费国产不卡午夜福在线观看| 亚洲精品无码专区在线观看| 国产91蝌蚪窝| 超碰91免费人妻| 精品一区二区三区自慰喷水| 亚洲欧美日本国产综合在线| 国产久操视频| 成人日韩精品| 亚洲综合婷婷激情| 国产国语一级毛片在线视频| 三区在线视频| 五月天丁香婷婷综合久久| 亚洲精品午夜天堂网页| 亚洲第一成年免费网站| 国产成+人+综合+亚洲欧美| 欧美中出一区二区| 久久国产精品影院| 经典三级久久| 日韩高清欧美| 国产自视频| 熟妇无码人妻| 色爽网免费视频| 一区二区三区国产| 毛片手机在线看| 久久亚洲中文字幕精品一区| 国产在线97| 亚洲成人免费在线| 午夜国产在线观看| 日本91在线| 亚洲综合色区在线播放2019| 午夜日b视频| 亚洲视频黄| 欧美日韩国产成人高清视频| 91国语视频| 性色在线视频精品| 九九线精品视频在线观看| 青青草原偷拍视频| 久久免费观看视频| 精品五夜婷香蕉国产线看观看| 亚洲高清中文字幕| 91福利在线观看视频|