jQuery 1.5發布 Ajax模塊重寫

2020-12-11 CSDN技術社區

美國時間1月31日John Resig在jQuery官方博客發表文章,宣布jQuery 1.5正式版已經如期開發完成,可以下載使用。壓縮版本jQuery Minified 29KB,不壓縮版本jQuery Regular(用於閱讀和調試)207KB。由於jQuery已經成為目前最流行的JavaScript庫,得到廣泛的支持,新版本的發布當然非常引人注目。

jQuery創始人John Resig在CSDN TUP活動上演講(相關報導)

另外,微軟和Google也為jQuery 1.5提供了CDN支持,可以直接導入:

微軟:http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.min.js

Google:https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js (發稿時為止尚未上線)

新版本的主要改進可以參見變更日誌:http://api.jquery.com/category/version/1.5/。

John Resig總結了幾點比較引人注目的變化。

1. Ajax重寫

Ajax模塊完全進行了重寫。新增一個jXHR對象,為不同瀏覽器內置的XMLHttpRequest提供了一致的超集。對於XMLHttpRequest之外的傳輸機制,比如JSONP請求,jXHR對象也可以進行處理。(詳情可以參見:jQuery.ajax文檔)

此外,系統的可擴展性大大增強,可以附加各種數據處理器、過濾器和傳輸機制,為開發新的Ajax插件提供了方便。(詳情參見:Ajax擴展文檔)

2. 延遲對象

延遲對象(Deferred Object,jQuery.Deferred對象)是一個可連結的(chainable)實用工具對象,實現了Promise接口,可以在回調隊列中註冊多個回調、調用回調隊列並轉發任何同步/異步函數的成敗狀態。正如Using Deferreds in jQuery 1.5一文中說明的,其結果是在jQuery中能夠將依賴於某個任務(事件)結果的邏輯與任務本身解耦了。這一點在JavaScript中其實並不新鮮,Mochikit和Dojo等已經實現有些日子了。由於jQuery 1.5的Ajax模塊內置使用了延遲對象,因此現在通過jQuery編寫Ajax程序將自動獲得這一功能。

開發人員藉此可以使用無法立即獲得的返回值(如異步Ajax請求的返回結果),而且第一次能夠附加多個事件處理器。

例如,使用了新的jQuery內部Ajax API就可以實現下面的代碼了:

// Assign handlers immediately after making the request,// and remember the jxhr object for this requestvar jxhr = $.ajax({ url: "example.php" }) .success(function() { alert("success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); });// perform other work here ...// Set another completion function for the request abovejxhr.complete(function(){ alert("second complete"); });

此外,使用jQuery.Deferred還可以開發自己的延遲對象。更多詳情參見:延遲對象文檔。 

3. jQuery.sub()

jQuery 1.5提供了一種創建和修改jQuery副本的方式。可以用來添加不向外部公開的方法,或者對jQuery的某些方法進行重新定義以提供新功能,或者提供更好的封裝、避免名稱空間衝突。當然,也可以用來開發插件,但Resig強烈建議在開發插件之前,先考慮jQuery UI widget工廠。

值得注意的是,sub函數並不提供真正的隔離,所有方法、數據、調用仍然依靠jQuery本身來支持。

4. 遍歷性能提高

在新版本中.children(), .pre(), .next()幾個常用的遍歷函數性能有了顯著提高。比如.children()的數據如下所示:

詳細的測試用例和數據可以參考這裡。

5. 內部開發系統

John Resig還特別提到了jQuery團隊內部開發系統的兩點改變:一是伺服器端用Node.js替換了老的Java/Rhino系統,使得團隊可以專注於JavaScript環境的新變化;二是所用的代碼優化程序從Google Closure切換到UglifyJS,新工具的壓縮效果非常令人滿意。

有意思的是,此前UglifyJS開發者曾經公布過自己的測試結果,表明對jQuery的壓縮結果UglifyJS要比Closure略大(都在72KB左右),但運行速度快得多,而且Closure不太安全。看來,這段時間UglifyJS的進展也很快啊。

對了,如果你在使用中發現問題,可以直接到這裡報告bug:http://bugs.jquery.com/。另外,也可以到Reddit上參與討論,別忘了,John Resig同學是那裡的版主,隨時盯著呢。

【延伸閱讀】

jQuery 1.5的改進細節

學習jQuery必須知道常用的幾種方法

Web開發者必知的12款jQuery插件

免費電子書:jQuery Fundamentals(英文)

相關焦點

  • 原生Ajax和jquery的ajax有什麼區別?
    主要內容ajax是什麼ajax作用原生ajax請求jquery的ajax請求jquery裡面封裝的ajax方法學習目標第一節 Ajax與http術語ajax最早產生於2005年,Ajax表示Asynchronous JavaScript and XML(異步JavaScript和XML
  • 一個簡單的Ajax功能(用到Jquery與Json)
    (回復【前端資料】獲取下載連結)●答案公布時間:為每期發布題目的第二天★【新】回復「測試題」獲取昨天發布的軟體工程師初級階段測試題答案★【新】回復「學習資料」獲取java學習電子文檔不存在任何培訓機構招生信息功能介紹:就是頁面已加載完成就通過ajax異步訪問伺服器然後去局部刷新頁面(也就是給從伺服器獲取的值存在頁面的下拉框中顯示如下圖:)                                                     效果圖:
  • jQuery的$.get()、$.post()和$.ajax()以GET/POST方式請求數據
    </title><script src="jquery-3.3.1.js"></script><script type="text/javascript">function getNETData() {var d = $.get("Handler1.
  • jQuery 3.1.0 發布 - OSCHINA - 中文開源技術交流社區
    jQuery 3.1.0 發布了,該版本主要修復之前 3.0 版本潛在的一些問題。
  • 動手編譯自定義版本的最新 jQuery 類庫?
    取得jQuery代碼並編譯 首先打開Git Bash,如果你安裝好了git,可以在開始菜單找到快捷方式,運行命令如下: git clone git://github.com/jquery/jquery.git 你將看到正在抓取jquery的相關文件。如下圖:
  • jQuery 3.0 Alpha 發布,Deferred 兼容 Promise
    jQuery 3.0 預覽版發布,此版本是 jQuery 3.0 的第一個 Alpha 預覽版!
  • 使用jQuery的ajax技術+JSON數據格式+C#+SQL Server實現數據顯示
    技術,本身就是一種很輕的數據操作方法,可以通過ajax技術從遠程的伺服器上拉取數據,這樣做就可以實現單向的拿出數據,然後斷開連接,剩下的就是在客戶端進行操作了,是一種很輕量級的操作數據的方法。這裡使用jQuery的ajax技術+JSON格式的數據+SQL Server資料庫來實現數據以表格形式顯示的功能。
  • 教程:---《JQuery如何工作》
    前言:我最近在做一個項目,需要用到ajax,我以前做ajax項目,已經有很多年了,jquery還不成熟,需要自己編寫大量的Javascript代碼。最近發現jquery很成熟了,我看了jquery官方的document,我想,如果沒有人翻譯過,我打算邊看文檔,順道邊翻譯。如果有人發現已經有人翻譯過了,勞煩通知一下,我就不做重複勞動了。這裡先提供入門章節內容。
  • Jquery事件
    >ready事件</title> <script src="js/jquery​ jquery調用ajax方法:​ 格式:$.ajax({});​ 參數:​ type:請求方式GET/POST​ url:請求地址url​ async:是否異步,默認是true表示異步​ data:發送到伺服器的數據​ dataType:預期伺服器返回的數據類型
  • 使ajax請求自動帶上cookie
    ajax請求無論是否跨域,默認請求頭中都是不會自動帶上cookie信息的。如果需要ajax請求自動在請求頭中帶上cookie信息,需要所訪問的伺服器允許這樣的操作。瀏覽器發送預檢請求獲取到響應頭中有這個欄位,則認為伺服器允許在發送ajax請求時自動帶上cookie信息。伺服器允許這樣的操作後,那麼前端發送ajax請求的時候,就需要進行這樣的操作。jquery的ajax請求中設置withCredentials=true即可。
  • AJAX筆記分享
    監聽事件,調用jsdocument.querySelector('.box').addEventListener('click',funcrion(){ 此處寫ajax的js代碼 })2.jQuery調用$("button").click(function(){ $.ajax({ // 設置url url:'http://127.0.0.1:8000/jquery-server', // 設置傳入參數 data:{a:200,b:300},
  • jQuery - AJAX post() 方法
    ><head><meta charset="utf-8"><title>菜鳥教程(runoob.com)</title><script src="https://cdn.staticfile.org/jquery
  • 前端JQuery知識體系詳解
    背景在現在就業的過程中,會運用JQuery是你的加分項,那麼什麼是JQuery,嗯,jquery是JavaScript的函數庫,是一種輕量級的JavaScript庫,寫得少,做的多,導致jQuery有很多技術人員在使用它做項目。
  • 超棒的jQuery矢量地圖生成插件 - JQVAMP
    ,德國地圖5.你可以自己定義自己的地圖(當然,這個過程比較繁瑣)6.實時更新地圖7.需要jQuery類庫支持8.完整清晰的文檔說明如何使用JQVAMP使用非常簡單,導入jQuery類庫和插件類庫,如下:<script src="https://ajax.googleapis.com
  • jQuery學習筆記
    /// w3school教程https://www.w3school.com.cn/jquery/index.asphttps://jquery.com/download/// 第一個為壓縮版本(將複雜的變量名簡化
  • 7 個 jQuery 最佳實踐
    Google CDN 是這樣的:<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script>  Microsoft CDN是這樣的:<script src="//ajax.aspnetcdn.com
  • 一個幫助你處理延遲重複循環操作的jQuery插件 - timing
    此類庫要求jQuery1.2以上,使用非常簡單,你只需要引入jquery類庫和一個js文件即可,如下:<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/--version--/jquery.min.js"><
  • jQuery經典面試題及答案精選
    回答:為了節省帶寬和腳本引用的穩定性,我們會使用CDN上的jQuery文件,例如google的jquery cdn服務。但是如果這些CDN上的jQuery服務不可用,我們還可以通過以下代碼來切換到本地伺服器的jQuery版本:<script type="text/javascript" language="Javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.4.1.min.js "></script>
  • 編寫jquery插件的分享
    作為一個前段程式設計師,肯定經常用到一些javascript插件吧,不得不承認,jquery是其中的比較優秀的插件之一,那麼我們有沒有想過我們自己也可以來封裝一個插件呢,下面我給大家分享一些方法,希望對大家有些幫助。
  • jquery ztree入門 - CSDN
    實現頁面驗證入門》《j2ee 簡單網站搭建:(九)jquery datatables + jquery ui dialog 插件使用入門》《j2ee 簡單網站搭建:(十)jquery ztree 插件使用入門》《j2ee 簡單網站搭建:(十一)ckeditor 控制項使用入門》 ztree 版本 v3.5.28 一 從官方網站下載 ztree 的