• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于不同數(shù)據(jù)傳輸格式對Ajax實時性響應影響的研究

      2011-03-16 07:42:10王鵬吳曉東楊華民
      關鍵詞:數(shù)據(jù)格式服務器端客戶端

      王鵬,吳曉東,楊華民

      (長春理工大學 計算機科學技術學院,長春 130022)

      Ajax(Asynchronous JavaScript and XML)作為Web2.0核心技術被越來越多地使用到Web應用中。Ajax 由 HTML、JavaScript、DHTML(Dynamical Hypertext Markup Language)和 DOM[1](Document Object Model)組成,它使用客戶端腳本異步傳輸、局部刷新技術很大程度上降低了服務器端的壓力。在一些實際項目應用中,如地理信息系統(tǒng),常常需要大量的數(shù)據(jù)交換,使用不同的數(shù)據(jù)格式,客戶和服務器端的響應會有很大不同。常見的數(shù)據(jù)交換格式 有 HTML、XML、JSON、CSV(Comma Separated Values)、GZIP五種。其中,HTML傳輸是最簡單的形式,但缺乏一定的靈活性。XML作為一種通用的標記語言,具有跨平臺、跨語言的優(yōu)勢。然而在實際的應用中,XML的解析工作會讓開發(fā)效率低下。JSON作為為新生代的純文本數(shù)據(jù)格式,在Ajax數(shù)據(jù)交換中有著得天獨厚的應用優(yōu)勢。在不考慮網(wǎng)絡傳輸?shù)那闆r下,解析不同數(shù)據(jù)格式的對象有著明顯的區(qū)別。本文主要從HTML、XML、JSON三種常用的數(shù)據(jù)交換格式探究三者在對象解析方面的區(qū)別,及對實時數(shù)據(jù)傳輸產(chǎn)生的影響。

      1 HTML、XML、JSON 簡介

      HTML(HypertextMark-upLanguage)即超文本標記語言或超文本鏈接標示語言,是目前網(wǎng)絡上應用最為廣泛的語言,也是構成網(wǎng)頁文檔的主要語言。HTML文本是由 HTML命令組成的描述性文本,HTML命令可以說明文字、圖形、動畫、聲音、表格、鏈接等。HTML的結構包括頭部(Head)、主體(Body)兩大部分,其中頭部描述瀏覽器所需的信息,而主體則包含所要說明的具體內(nèi)容。在Ajax輕量級應用中,通常以HTML片段的形式實現(xiàn)客戶端和服務器端的簡單數(shù)據(jù)交換。

      XML[2](Extensible Markup Language)即可擴展標記語言,它與HTML一樣,都是SGML(Standard Generalized Markup Language,標準通用標記語言)。Xml是Internet環(huán)境中跨平臺的,依賴于內(nèi)容的技術。擴展標記語言XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標記描述數(shù)據(jù),而這些標記可以用方便的方式建立服務器端使用數(shù)據(jù)格式。一個XML文檔最基本的構成包括:聲明,處理指令(可選)和元素,所有xml文檔都從一個根節(jié)點開始,根節(jié)點包含了一個根元素,其他元素必須包含在根元素中,嵌套在內(nèi)的為子元素,子元素還可以包含子元素,數(shù)據(jù)既可以存在子元素中也可以存在元素的屬性中。

      和XML一樣,JSON[3]也是基于純文本的數(shù)據(jù)格式。由于JSON是為JavaScript準備的,因此,JSON的數(shù)據(jù)格式非常簡單,可以用JSON傳輸一個簡單的String,Number或Boolean類型變量,也可以傳輸一個數(shù)組,或者一個復雜的Object對象。在實際應用中通常以Object對象進行數(shù)據(jù)交換,而Object對象在 JSON中是用{}包含一系列無序的Key-Value鍵值對表現(xiàn)的。

      2 影響實時響應的因素

      影響Ajax應用的實時響應因素包括:

      1.網(wǎng)絡傳輸環(huán)境

      2.不同數(shù)據(jù)格式的傳輸速度

      3.不同數(shù)據(jù)格式的解析速度

      由于Ajax在異步傳輸、局部刷新方面的特點,在網(wǎng)絡傳輸環(huán)境一定的情況下,不同數(shù)據(jù)格式的傳輸速度差別不大,但是計算機在對不用數(shù)據(jù)格式對象的解析上所耗費的時間是明顯的。

      3 數(shù)據(jù)格式比較

      下面以服務器端實時向客戶端發(fā)送簡單的地圖地理信息[4]為例來說明相同信息在使用不同數(shù)據(jù)格式時的表現(xiàn)形式。服務器端向客戶端返回的信息包括區(qū)域、經(jīng)度、緯度信息。

      3.1 基于HTML的信息傳遞數(shù)據(jù)格式

      使用HTML進行傳輸需要對以上坐標信息按一定規(guī)則連成文本信息,在服務器端對信息編碼完成后,進而傳遞至客戶端。在客戶端再按該規(guī)則將文本還原。例如,需要傳遞的坐標信息為{所在區(qū)域:長春;經(jīng)度:125.29889;緯度:43.81185}。傳遞的 HTML片段可確定為"#長春%125.29889%43.81185#",在連接串中使用約定符號組織傳遞的數(shù)據(jù)信息。在客戶端端按所在區(qū)域、經(jīng)度、緯度進行文本還原,實時顯示地理信息。

      使用HTML片段,內(nèi)容簡潔,不會浪費過多的帶寬資源,但是需要在服務器端或客戶端以字符串形式構造出HTML文本,不利于編程,也不容易調(diào)試和維護。特別在傳輸?shù)奈谋镜臄?shù)據(jù)結構的復雜的情況下,調(diào)試維護的難度會凸顯出來。

      3.2 基于XML的信息傳遞數(shù)據(jù)格式

      XML的非空標記必須由開始標記和結束標記組成,兩者之間是標記的內(nèi)容。開始標記以"<"開始,以">"結束,中間是標記名稱,結束標記以""結束,中間是標記名稱。在開始標記和結束標記之間即為該標記的值。將以上的HTML片段改寫成XML形式,即:

      其中為根節(jié)點,在根節(jié)點以下為子節(jié)點,,在這些節(jié)點中存儲著需要保存的坐標信息。

      3.3 基于JSON的信息傳遞數(shù)據(jù)格式

      JSON包含簡單的數(shù)值類型,諸如字符串(string)、數(shù)值(number)等,但使用這些簡單數(shù)據(jù)類型定義復雜格式的數(shù)據(jù)無疑是困難的,在實際應用中以JSON的對象(Object)格式進行定義數(shù)據(jù),以上的XML信息對應轉換為JSON格式即為[5]:

      以上 coordinate即為 JSON的一個對象(Object),JSON 在表示數(shù)據(jù)時將屬性和值以":"分開,同一個對象的不同屬性通過","相區(qū)別。

      4 不同數(shù)據(jù)格式對象的解析實驗

      4.1 Html片段

      在本實驗中不使用規(guī)則串的形式來傳遞數(shù)據(jù),而是用具體的 div標簽形式傳遞所需要的數(shù)據(jù)信息。使用Ajax輕量級框架JQuery的Load方法,將包含不同個數(shù)對象的 Html片段加載至網(wǎng)頁。實現(xiàn)方式如下:

      $("#DataReslultDiv").load("CustomerOrders.htm");

      Load方法可以遠程載入HTML代碼并插入到Dom中

      單個Html解析對象可以表示為:

      4.2 XML

      Ajax輕量級框架JQuery提供ajax方法,可以實現(xiàn)對xml文件的讀取和xml結點的解析,具體方法為:

      其中,type定義了獲取xml的方式為get請求,url為訪問xml文件的地址,dataType定義了訪問的文件類型為 xml,success為訪問成功后執(zhí)行的函數(shù),在該函數(shù)中解析XML結點,計算每個結點解析所需要花費的時間。

      以下是一個xml解析對象的表現(xiàn)形式:

      其中data為根節(jié)點,area、xcoordinate、ycoordinate為子結點,分別記錄地區(qū)、緯度、經(jīng)度信息。

      4.3 JSON

      JQuery提供訪問JSON文件的方法getJSON():

      getJSON(paramOne,paramTwo)其中參數(shù)一為要訪問的文件名,第二個參數(shù)為訪問成功后要執(zhí)行的函數(shù),該函數(shù)的參數(shù)data為返回的JSON格式的數(shù)據(jù),在該函數(shù)中完成對JSON數(shù)組元素的解析并記錄解析所需要的時間。

      JSON數(shù)據(jù)格式的單個解析對象為:

      實驗環(huán)境為單機:

      CPU:AMD Athlon(tm)64 X2 Dual-Core Processor TK-53;

      Memory:2G;

      OS:Windows XP sp 2。

      實驗一模擬了在大量解析對象個數(shù)的情況下,計算機分別解析普通HTML、XML以及JSON對象所需要的時間。

      表1 實驗一(大量解析對象耗時情況)Tab.1 Time-consuming cases of a large-number analysis objects

      從實驗一可以看出使用 Html作為傳輸數(shù)據(jù)格式明顯比XML、JSON獲得更快的響應時間[6],在數(shù)據(jù)量少且數(shù)據(jù)結構不復雜的情況下,使用 Html應為首選的數(shù)據(jù)傳輸格式。同時,計算機對 JSON數(shù)據(jù)對象的解析也快于XML,雖然XML具有很好的通用性,但是在某些應用環(huán)境下使用JSON數(shù)據(jù)格式會縮短響應時間。

      實驗二模擬了在隨解析對象個數(shù)遞增的情況下(解析對象個數(shù)分別為 100、500、1000、2000、5000個),解析普通HTML片段、XML以及JSON對象所需要耗費的總時間和解析單個對象所要耗費的時間。

      表2 實驗二(不同解析對象數(shù)量耗時情況)Tab.2 Time-consuming cases of a different analysis objects

      從實驗二可以看出單個HTML對象的解析時間并沒有隨著解析對象的個數(shù)的增多而增多,在解析對象個數(shù)少量的情況下(100和500),計算機會花費較多的時間比重在 Html文件的解析上,但是當結點個數(shù)增加(1000、2000、5000)單個 Html的對象的解析時間基本持平。單個JSON對象的解析速度要快于XML對象的解析速度,而且XML對象的信息冗余會比JSON大得多,以下是兩者在不同解析對象個數(shù)下的文件大小比較。

      表3 不同數(shù)據(jù)格式文件大小比較Tab.3 Comparison of different data format file size

      隨著解析對象個數(shù)的增加,XML較之JSON的冗余程度增速會越來越快,冗余比重越來越大,因此與使用XML作為數(shù)據(jù)傳輸格式相比JSON會有更少的數(shù)據(jù)冗余,更快的響應。

      5 結語

      在模擬實驗中,選取的解析對象為簡單的一維數(shù)組形式,在較為復雜的應用中會有復雜的數(shù)組或?qū)ο笄短浊闆r出現(xiàn),此時對XML對象的解析會更加耗時,同時增加更多的信息冗余。而使用 Html進行傳輸會使編碼和維護工作異常繁重。使用JSON作為數(shù)據(jù)傳輸格式在不增加冗余的同時,對JSON對象的解析也會比以上兩種數(shù)據(jù)格式更加容易且更易維護。因此,不同的應用背景下選擇不同數(shù)據(jù)傳輸格式會影響 Ajax應用的響應時間,進而影響到用戶體驗。

      [1]W3C Document Object Model[EB/OL].http://www.w3.org/DOM,2005.

      [2]Extensible markup language(xml)1.0[EB/OL].http://www.w3.org,2006.

      [3]json.Introducing JSON[EB/OL].http://www.json.org,2006.

      [4]韓敏,馮浩.基于JSON的地理信息數(shù)據(jù)交換方法研究[J].測繪科學,2010,35(1):159-161.

      [5]XML與JSON[EB/OL].http://book.51cto.com/art/200-803/67482.htm,2008.

      [6]Smullen,C,Smullen S.AJAX Application Server Performance[J].Proceedings of the IEEE SoutheastCon 2007:154-158.

      猜你喜歡
      數(shù)據(jù)格式服務器端客戶端
      縣級臺在突發(fā)事件報道中如何應用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      在智能交通系統(tǒng)中PLC數(shù)據(jù)格式轉換方法的研究
      電子測試(2018年1期)2018-04-18 11:52:49
      淺析異步通信層的架構在ASP.NET 程序中的應用
      成功(2018年10期)2018-03-26 02:56:14
      在Windows中安裝OpenVPN
      論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應用
      DWG與SHP數(shù)據(jù)格式互轉換方法研究——以龍巖規(guī)劃測繪數(shù)據(jù)為例
      基于ArcGIS的規(guī)劃數(shù)據(jù)格式轉換研究
      客戶端空間數(shù)據(jù)緩存策略
      黄石市| 丰都县| 阿鲁科尔沁旗| 阳山县| 靖边县| 富顺县| 阳山县| 凤翔县| 张家港市| 陇川县| 舟曲县| 鄯善县| 马公市| 孙吴县| 永德县| 丁青县| 金秀| 深圳市| 茌平县| 曲水县| 阳西县| 文登市| 兴文县| 三河市| 灌南县| 宜春市| 岗巴县| 安宁市| 鹤壁市| 周宁县| 曲靖市| 哈巴河县| 缙云县| 遵义县| 瑞昌市| 许昌县| 中江县| 星座| 磴口县| 荔浦县| 贵定县|