一、 jQuery實現Ajax的方法:javascript
●除了$.ajax()方法之外,jQuery還提供了其餘多種更簡單的 Ajax 實現方法,如$.get()、$.post()、$.getJSON()、對象.load()等方法;html |
|||||||||||||||
●$.get()方法:是 jQuery 封裝的發送 HTTP GET 請求從服務器加載數據的Ajax方法; java 語法:$.get( url [, data] [, success] [, dataType] );jquery ◆$.get()方法經常使用參數:git
|
|||||||||||||||
●$.post()方法:是 jQuery 封裝的發送 HTTP POST請求從服務器加載數據的Ajax方法; 語法:$.post( url [, data] [, success] [, dataType] ); ◆$.post()方法經常使用的參數:
|
|||||||||||||||
●$.getJSON()方法:因爲使用Ajax技術實現異步請求時,常常採用JSON數據格式做爲相遇內容的載體,爲了簡化此種狀況下的方法調用,jQuery提供了此方法; 語法:$.getJSON( url [, data] [, success] ); ◆$.getJSON()方法經常使用的參數:
◆注意:$.getJSON()方法只能以GET方式發送請求; |
|||||||||||||||
●.load()方法:方對於經過 Ajax 請求直接加載 HTML 內容當前頁面的使用場景,jQuery 也提供了 一個 . load()方法做爲簡易實現。該方法經過發送 Ajax 請求從 服務器加載數據並把晌應的數據添加到指定元素中。 語法:$( selector ).load( url [, data] [, complete] ); ◆.load()方法經常使用的參數:
◆該方法默認使用 GET 方法發送請求,除非提供的 data 參數是一個對象 , 則使用 POST 方法發送; ◆該方法是最簡單的從服務器獲取數據的 Ajax 方法 , 它幾乎與$ .get(url,data,success)方法等價;不一樣的是它不是全局函數,而是針對與選擇器匹配的元素執行,而且它擁有匿名的回調函數,當求成功後,該方法自動將返回的數據設置爲匹配元素的 HTML 內容 |
|||||||||||||||
●.load ()方法還能夠僅加載遠程文檔的某個部分,經過 url 參數的特殊語法能夠實現。url參數中能夠經過空格鏈接決定加載內容的 jQuery 選擇器, 如如下代碼: $ ("#result" ) . load (「article.html #starlet"); jQuery 將會取回 article.html的內容,而後解析返回的文檔,查找 id 爲 target 的元素。該素連同其內容會被插入:id 爲 result 的元素,所取回文檔的其餘部分則被丟棄; |
|||||||||||||||
●注:$.get()、$.post()、$.getJSON()、對象.load()等經常使用 Ajax 方法都是基於$.ajax ()方法封裝的,相比於$.ajax ()方法更加簡潔、方便。一般狀況下,對於通常的Ajax 功能需求使用以上 Ajax 方法便可知足(),若是須要更多的靈活性,可使用$.ajax ()方法指定多參數; |
|||||||||||||||
●基於表單數據的Ajax請求: ▲jQuery的.serializeArray()方法會從一組表單元素中檢測有效控件,將其序列化成由 name 和 value()兩個屬性構成的 JSON 對象的數組。 ◆其中有效控件的規則以下(檢測一組表單元素中的有效控件): ★沒有被禁用 ★必須有name屬性 ★選中的checkbox或radio纔是有效的 ★只有觸發提交事件的submit按鈕纔是有效的 ★file元素不會被序列化 |
|||||||||||||||
●$.param(): ◆jQuery還提供了一種更簡便的方式來實現將表單序列化成請求字符串的功能,即對錶元素調用.serialize ()方法:$commentlnputs.serialize()方法,實際上,.serialize()方法內部就是使用 $.param()對.serializeArray()作了一個簡單包裝。對於不須要中間環節的情景,能夠更簡便地完成表單數據的序列化; ◆將由. serializeArray()生成的對象數組序列化成請求字符串的形式: 語法:
|
二、使用 FastJSON生成 JSON 字符串:
●FastJSON簡介:FastJSON是一個性能很好的、由Java實現的JSON解析器和生成器,來自阿里巴巴,其代碼託管在 GitHub 服務器上,在https://github.com/alibaba/fastjson/releases頁面能夠找到不一樣版本jar文件和源代碼下載路徑;FastJSON提供了把 Java 對象序列化成 JSON 字符串,以及將 JSON 字符串反序列化獲得 Java對象的功能;
|
||||||||||||||||||||||||||||
●使用FastJSON API:FastJSON API的入口類是com.alibaba.fastjson.JSON,基本上經常使用的操做均可以經過該類的靜態方法直接完成。 ◆用於將 Java 對象序列化成 JSON 字符串的經常使用方法以下:
◆枚舉類型 SerializerFeature 定義了多種序列化屬性: ★經常使用屬性以下:
★eg:序列化時要包含包含值爲 null 的字段,數值爲 null 輸出0,String 爲 null 輸出「」 String strJSON = JSON.toJSONString ( javaObject, SerializerFeature.WriteMapNullValue,SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullStringAsEmpty ); |
三、 jQuery 讓渡$操做符:
●在 jQuery 中,"$「 符號有着重要的做用;除了 iQuery , 還有其餘一些 JavaScript 腳本庫也使用'$' 符號,當項目開發中由於某些緣由同時使用了 jQuery 和另外一個一樣使用’ $' 符號的腳本庫,就會產生衝突。 eg:下面代碼Prototype的 $ 會覆蓋jQuery的 $ <script type="text/javascript" src="../js/jquery-1.12.4.min.js" /> <script type="text/javascript" src="../js/prototype.js" /> eg:下面的 jQuery的 $ 會覆蓋Prototype的 $ <script type="text/javascript" src="../js/prototype.js" /> <script type="text/javascript" src="../js/jquery-1.12.4.min.js" /> |
●爲了使jQuery可以與其餘一樣使用」$」符號的腳本庫共同工做, jQuery定義了jQuery.noConflict()方法,放棄對$的使用權,並能夠經過返回值指定一個替代符號,以避免與其餘腳本庫衝突; eg:jQuery.noConflict(); // 讓渡$使用權,後續jQuery代碼使用jQuery代替$ jQuery( document ).ready( … ); 或者從新指定一個替代符號: var $j = jQuery.noConflict(); // 讓渡$使用權,並指定用 $j 代替$ $j( document ).ready( … ); ◆可是論採用哪一種方式,都會改變 jQuery 的編碼風格,不只更加煩瑣,並且對於已有 jQuery代碼的重用也會產生不利影響; eg:建議使用以下代碼:
|
四、總結: