jQuery輕量級 JavaScript 框架
jQuery是一個快速,小型且功能豐富的JavaScript庫。借助易于使用的API(可在多種瀏覽器中使用),它使HTML文檔的遍歷和操縱,事件處理,動畫和Ajax等事情變得更加簡單。兼具多功能性和可擴展性,jQuery改變了數(shù)百萬人編寫JavaScript的方式。
jQuery的核心特性可以總結(jié)為:具有獨特的鏈式語法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可對CSS選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。
語言特點
- 快速獲取文檔元素
- 提供漂亮的頁面動態(tài)效果
- 創(chuàng)建AJAX無刷新網(wǎng)頁
- 提供對JavaScript語言的增強
- 增強的事件處理
- 更改網(wǎng)頁內(nèi)容
jQuery的由來
2005年8月,John Resig提議改進Prototype的Behaviour庫,于是他在博客上發(fā)表了自己的想法。 當時John Resig的想法很簡單:他發(fā)現(xiàn)這種語法相對現(xiàn)有的JavaScript庫更為簡潔。但他沒想到的是,這篇文章一經(jīng)發(fā)布就引起了業(yè)界的關(guān)注。于是John開始認真思考著這件事情(編寫語法更為簡潔的JavaScript程序庫)。
直到2006年1月14日,John Resig正式宣布以jQuery的名稱發(fā)布自己的程序庫。隨之而來的是jQuery的快速發(fā)展。 2006年1月John Resig等人創(chuàng)建了jQuery;8月,jQuery的第一個穩(wěn)定版本,并且已經(jīng)支持CSS選擇符、事件處理和AJAX交互。
工作原理
jQuery的模塊可以分為3部分:入口模塊、底層支持模塊和功能模塊。在構(gòu)造jQuery對象模塊中,如果在調(diào)用構(gòu)造函數(shù)jQuery()創(chuàng)建jQuery對象時傳入了選擇器表達式,則會調(diào)用選擇器Sizzle(一款純JavaScript實現(xiàn)的CSS選擇器引擎,用于查找與選擇器表達式匹配的元素集合)遍歷文檔,查找與之匹配的DOM元素,并創(chuàng)建一個包含了這些DOM元素引用的jQuery對象。
在底層支持模塊中,回調(diào)函數(shù)列表模塊用于增強對回調(diào)函數(shù)的管理,支持添加、移除、觸發(fā)、鎖定、禁用回調(diào)函數(shù)等功能;異步隊列模塊用于解耦異步任務(wù)和回調(diào)函數(shù),它在回調(diào)函數(shù)列表的基礎(chǔ)上為回調(diào)函數(shù)增加了狀態(tài),并提供了多個回調(diào)函數(shù)列表,支持傳播任意同步或異步回調(diào)函數(shù)的成功或失敗狀態(tài);數(shù)據(jù)緩存模塊用于為DOM元素和Javascript對象附加任意類型的數(shù)據(jù);隊列模塊用于管理一組函數(shù),支持函數(shù)的入隊和出隊操作,并確保函數(shù)按順序執(zhí)行,它基于數(shù)據(jù)緩存模塊實現(xiàn)。
在功能模塊中,事件系統(tǒng)提供了統(tǒng)一的事件綁定、響應(yīng)、手動觸發(fā)和移除機制,它并沒有將事件直接綁定到DOM元素上,而是基于數(shù)據(jù)緩存模塊來管理事件;Ajax模塊允許從服務(wù)器上加載數(shù)據(jù),而不用刷新頁面,它基于異步隊列模塊來管理和觸發(fā)回調(diào)函數(shù);動畫模塊用于向網(wǎng)頁中添加動畫效果,它基于隊列模塊來管理和執(zhí)行動畫函數(shù);屬性操作模塊用于對HTML屬性和DOM屬性進行讀取、設(shè)置和移除操作;DOM遍歷模塊用于在DoM樹中遍歷父元素、子元素和兄弟元素;DOM操作模塊用于插入、移除、復(fù)制和替換DOM元素;樣式操作模塊用于獲取計算樣式或設(shè)置內(nèi)聯(lián)樣式;坐標模塊用于讀取或設(shè)置DOM元素的文檔坐標;尺寸模塊用于獲取DOM元素的高度和寬度。
運行條件
運行jQuery所需的條件很簡單:一臺計算機、一個智能電話或一個可以運行現(xiàn)代瀏覽器的設(shè)備。jQuery對瀏覽器的要求也相當自由。官方網(wǎng)站列出了下列支持jQuery的瀏覽器:
- Firefox 2.0+
- Internet Explorer 6+
- Safari 3+
- Opera 10.6+
- Chrome 8+
