Ajax獲取數據的幾種格式和解析方式

一.什麼是ajax 
 AJAX的全稱是Asynchronous JavaScript and XML(是異步的 javascript 和 XML)。 
  ajax不是新的編程語言,而是一種使用現有標準的新方法,ajax是一種在無需從新加載整個網頁的狀況下,可以更新部分網頁的技術。 
  ajax是一種用於快速建立動態網頁的技術。經過在後臺與服務器進行少許數據交換,ajax就可使網頁實現異步更新。這意味着能夠在不從新加載整個網頁的狀況下,對網頁的某部分進行更新。而傳統的網頁(不使用ajax)若是須要更新內容,必須重載整個網頁面。javascript

  ajax的應用使用支持以上技術的web瀏覽器做爲運行平臺。這些瀏覽器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。可是Opera不支持XSL格式對象,也不支持XSLT。html

  ajax前景很是樂觀,能夠提升系統性能,優化用戶界面。AJAX現有直接框架AjaxPro,能夠引入AjaxPro.2.dll文件,能夠直接在前臺頁面js調用後臺頁面的方法。但此框架與FORM驗證有衝突。另微軟也引入了AJAX組建,須要添加AjaxControlToolkit.dll文件,能夠在控件列表中出現相關控件。java

  ajax的優勢:jquery

  一、最大的一點是頁面無刷新,用戶的體驗很是好。 
  二、使用異步方式與服務器通訊,具備更加迅速的響應能力。。 
  三、能夠把之前一些服務器負擔的工做轉嫁到客戶端,利用客戶端閒置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。而且減輕服務器的負擔,ajax的原則是「按需取數據」,能夠最大程度的減小冗餘請求,和響應對服務器形成的負擔。 
  四、基於標準化的並被普遍支持的技術,不須要下載插件或者小程序。 
  五、ajax可以使因特網應用程序更小、更快,更友好。web

  ajax的缺點:ajax

  一、ajax不支持瀏覽器back按鈕。 
  二、安全問題 AJAX暴露了與服務器交互的細節。 
  三、對搜索引擎的支持比較弱。 
  四、破壞了程序的異常機制。 
  五、不容易調試。 
$.ajax({ 
url: ‘string’, 
type: ‘GET/POST’, 
dataType: ‘string’, //規定獲取的數據類型 
timeout: 1000, //設置延時 
cache: true/false, //是否自動緩存 
error: function(){}, //錯誤執行方法 
success: function(){}//成功執行方法 
})編程

 二.$.ajax()方法中dataType屬性的取值 
$.ajax()方法中dataType屬性要求爲String類型的參數,預期服務器返回的數據類型。若是不指定,jQuery將自動根據http包mime信息返回responseXML或responseText,並做爲回調函數參數傳遞。可用的類型以下: 
xml:返回XML文檔,可用jquery處理。 
html:返回純文本HTML信息;包含的script標籤會在插入DOM時執行。 
script:返回純文本JavaScript代碼。不會自動緩存結果。除非設置了cache參數。注意在遠程請求時(不在同一個域下),全部post請求都將轉爲get請求。 
json:返回JSON數據。 
jsonp:」jsonp」格式,使用jsonp形式調用函數時,如」myurl?callback=?」jquery將自轉換?爲正確的函數名,以執行回調函數。 
text:純文本格式數據。json

3、datatype的解析方式 
「xml」數據類型的解析:XML是一種通用的數據交換格式,它的平臺無關性、語言無關性、系統無關性、給數據集成與交互帶來了極大的方便。XML在不一樣的語言環境中解析方式都是同樣的,只不過實現的語法不一樣而已。小程序

  XML的解析方式分爲四種: 
  一、DOM解析; 
  二、SAX解析; 
  三、JDOM解析; 
  四、DOM4J解析。跨域

  一、DOM解析 
  DOM的全稱是Document Object Model,也即文檔對象模型。在應用程序中,基於DOM的XML分析器將一個XML文檔轉換成一個對象模型的集合(一般稱DOM樹),應用程序正是經過對這個對象模型的操做,來實現對XML文檔數據的操做。經過DOM接口,應用程序能夠在任什麼時候候訪問XML文檔中的任何一部分數據,所以,這種利用DOM接口的機制也被稱做隨機訪問機制。

  DOM接口提供了一種經過分層對象模型來訪問XML文檔信息的方式,這些分層對象模型依據XML的文檔結構造成了一棵節點樹。不管XML文檔中所描述的是什麼類型的信息,即使是製表數據、項目列表或一個文檔,利用DOM所生成的模型都是節點樹的形式。也就是說,DOM強制使用樹模型來訪問XML文檔中的信息。因爲XML本質上就是一種分層結構,因此這種描述方法是至關有效的。

  DOM樹所提供的隨機訪問方式給應用程序的開發帶來了很大的靈活性,它能夠任意地控制整個XML文檔中的內容。然而,因爲DOM分析器把整個XML文檔轉化成DOM樹放在了內存中,所以,當文檔比較大或者結構比較複雜時,對內存的需求就比較高。並且,對於結構複雜的樹的遍歷也是一項耗時的操做。因此,DOM分析器對機器性能的要求比較高,實現效率不十分理想。不過,因爲DOM分析器所採用的樹結構的思想與XML文檔的結構相吻合,同時鑑於隨機訪問所帶來的方便,所以,DOM分析器仍是有很普遍的使用價值的。

    優勢: 
      一、造成了樹結構,有助於更好的理解、掌握,且代碼容易編寫。 
      二、解析過程當中,樹結構保存在內存中,方便修改。 
    缺點: 
      一、因爲文件是一次性讀取,因此對內存的耗費比較大。 
      二、若是XML文件比較大,容易影響解析性能且可能會形成內存溢出。 
       
  二、SAX解析 
  SAX的全稱是Simple APIs for XML,也即XML簡單應用程序接口。與DOM不一樣,SAX提供的訪問模式是一種順序模式,這是一種快速讀寫XML數據的方式。當使用SAX分析器對XML文檔進行分析時,會觸發一系列事件,並激活相應的事件處理函數,應用程序經過這些事件處理函數實現對XML文檔的訪問,於是SAX接口也被稱做事件驅動接口。

    優勢: 
      一、採用事件驅動模式,對內存耗費比較小。 
      二、適用於只處理XML文件中的數據時。

    缺點: 
      一、編碼比較麻煩。 
      二、很難同時訪問XML文件中的多處不一樣數據。 
       
 三、JDOM解析 
    特徵: 
      一、僅使用具體類,而不使用接口。 
      二、API大量使用了Collections類。 
       
 四、DOM4J解析 
    特徵: 
      一、JDOM的一種智能分支,它合併了許多超出基本XML文檔表示的功能。 
      二、它使用接口和抽象基本類方法。 
      三、具備性能優異、靈活性好、功能強大和極端易用的特色。 
      四、是一個開放源碼的文件

「html」數據類型的解析: 
後臺返回純文本HTML信息;包含的script標籤會在插入DOM時執行。 
將一段HTML片斷保存在一個HTML文件中,在另外的主頁面直接讀取該HTML文件,而後解析裏面的HTML代碼片斷融入到主頁面中。 
如:a.html頁面內容 

hello jQuery


在其餘頁面解析a.html代碼以下: 
(「#a1」).click(function(){(「#div2」).load(‘fragment.html’); 
return false; 
}); 
在項目中經常使用的是Dom去解析html,可是如下介紹的解析器可能會讓你更簡單、容易去解析html。另外javaweb中經常使用的dom解析是dom4j 
一、jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套很是省力的API,可經過DOM,CSS以及相似於jQuery的操做方法來取出和操做數據。聽說它是基於MIT協議發佈的。 
jsoup的主要功能以下: 
從一個URL,文件或字符串中解析HTML; 
使用DOM或CSS選擇器來查找、取出數據; 
可操做HTML元素、屬性、文本;

 

「script」數據類型的解析: 
返回純文本JavaScript代碼, 
「jsonp」數據類型的解析: 
首先得理解什麼是jsonp? 
因爲受到同源策略的限制因此產生了jsonp方式來跨域請求數據 
同源: 
  同源策略是瀏覽器的一種安全策略,所謂同源是指,同域名,同協議,同端口。 
  1.、目的:保護用戶信息安全 
  二、限制:cookie、localStorage和IndexDB沒法讀取 
  沒法操做跨域的iframe裏的dom元素 
  ajax請求不能發送 
利用在頁面中動態建立

相關文章
相關標籤/搜索