選擇jQuery的理由

openkk 13年前發布 | 32K 次閱讀 jQuery

隨著 Web 前端技術的發展,Javascript 框架層出不窮,jQuery 就是其中之一。最近,國內外社區針對 jQuery 的優缺點做了深入的分析,其中不少內容值得 Web 開發人員借鑒。

Richard Hein 在“6 Things You Need to Know About jQuery”一文中列舉了推薦 jQuery 的托干理由,包括:

  1. jQuery 簡化工作——開發人員會發現學習 jQuery 比較容易,因為該框架的代碼簡潔精練,語法簡單、編碼標準開發等特點幫助開發人員縮短了部署應用的時間。此外,開發人員無需對 Web 設計非常在行,利用 jQuery,不必花費太多的時間用來編寫和測試 CSS 代碼,而且 jQuery 還有大量的 UI 組件。
  2. jQuery 的顯示不受 Javascript 被禁用的影響——如果 Adobe Flash 不能正常加載,那么有的頁面就不能正常顯示。這會對用戶產生負面的影響,并且導致開發人員不得不為此做額外的編碼處理,從而延長了開發時間。而這種情況不會在 jQuery 身上出現。它采用的是 HTML DOM 操作,即使瀏覽器的 Javascript 被禁用,網頁還是可以正常顯示。
  3. jQuery 與 Visual Studio IDE 集成——NuGet 是 Visual Studio 的一個擴展,在開發基于 .NET Framework 的應用時,NuGet 能夠簡化添加、刪除等工作。VS 2010 通過“管理 NuGet 包”對話框來支持對 jQuery 的集成。這種特性會觸發 VS 的智能感知等功能,提示開發人員 jQuery 的方法和語法。總的來說,大多數 .NET 開發人員對 NuGet 都比較熟悉。這就是 jQuery 在 .NET 社區持續受到關注的原因之一。利用 jQuery 針對 Windows 的 Mobile theme,你會在 Windows Phone 平臺上享受到所有的開發優勢。微軟也在鼓勵 jQuery 的使用,并且認真對待 HTML5,引入了許多 jQuery 元素。
  4. jQuery 制作的動畫效果不比 Flash 差——Flash 開發人員需要很長的學習過程,對于通常的開發人員開說,需要花費數年的時間才能創建出優秀的作品。而另一方面,jQuery 是免費的,而且只要求開發人員了解 Javascript 和 HTML。假設你可以負擔得起 Flash 開發軟件,但是開發人員仍然需要處理那些不支持 Flash 的情況,這是構建 Flash 網站的最大的缺點之一,也是利用 HTML5 構建的最大優勢之一。同時,jQuery 使用了 CSS、HTML、Javs 和 Ajax,這意味著你可以無需采用類似 Flash 那種特殊的優化方式。
  5. jQuery 加載更快——Google 和其他搜素引擎都把頁面加在時間作為影響 SEO 的因素之一。因此,開發人員都會努力把 Web 代碼盡可能寫的簡潔和準確。最好的方式是減少代碼量。jQuery 文件與 Web 頁面分開存儲,這可以讓開發人員集中地優化代碼。此外,jQuery 還支持開發人員自主選擇如何加載 Div 標簽,如果你想要改進網站的速度,那么可能會考慮在必要的時候只加載所需的 Div 標簽。
  6. jQuery 有助于 SEO——網站的代碼結構對各種搜索引擎的排名影響較大,jQuery 提供了大量優化的插件幫助開發人員完成這項工作。

在國內社區,開發人員也對 jQuery 做了討論。張經緯比較了 jQuery 和 YUI 的優缺點

jQuery 專注于 DOM 的操作,他通過繼承的方式給傳入的對象增加了新的方法,從而使我們可以通過鏈式調用來操作對象,這種方法上手簡單,我看到很多設計師都可以玩上一玩。其實,就像 jQuery 說的,write less do more!

YUI 是一個大型開發工具,他提供了一套 javascript 以及 css 的類庫來為交互開發提供支持,我們可以看到 YUI 除了主打的 js 框架外,還有配套的壓縮工具(YUI Compressor),文檔生成工具(YUI Doc),單元測試工具(YUI Test)甚至開放了 PHPLOADER(YUI PHP Loader ),再較大團隊開發中,這些東西是非常重要的。

從編程語法上來說,誠如前面所說,jQuery 專注于 DOM 操作,因此必不可免的弱化了 OO,相比之下 YUI 則更加規范。再如,jQuery 中面向 DOM 的設計,決定了他可以通過$.extend ()或者$(elem) .extend ()向對象或者節點增加新的方法,而 YUI 在這方面就異常的笨拙。當然,這些并不能說明誰比誰好,YUI 的顆粒化決定了他的維護成本低,可以稱為刀,而 jQuery 鋒利的刀刃決定了它使用方便,游刃有余,可以稱為劍。

程劭非則對 jQuery 的評價不高,理由包括:

  1. jQuery 主要解決了兼容問題和 DOM 操作問題,以 CSS 選擇器的方式批量操作元素是主要特色,對于特定項目,我認為實現這個的難度實在不大。而其主旨"write less, do more." 少寫些的這個觀點我半點不能認同,寫程序的時間主要花在思考和調試,而非打字。
  2. jQuery 污染了兩個名字 JQuery 和$,這個在類庫中可以算極少污染了,但是實際上$與其它類庫沖突很多,而 noconflict 這個方案可算不倫不類。
  3. jQuery 的 API 設計可以說非常巧妙和優秀,但是其實跟 JS 的原生對象差的有些遠,不過卻跟 CSS 的模式比較接近,這個對于不少人很有親和力。
  4. jQuery 的實現質量也算比較高了,雖然選擇器還有些優化空間,不過基本可以認為沒有太大問題。

楊昆則給出了知乎選擇 Closure Library 來作為 JavaScript 庫,而不選擇更流行的 jQuery 的理由

選擇 closure-library 是因為這是一個整體解決方案,自帶的庫已經很豐富,不需要再去找其他插件。而且 google 用其開發了 gmail,google doc,可以放心它的質量。

如果選擇 jquery 的話,單純 jquery 庫是不夠的,還得很多第三方插件,這些插件質量良莠不齊,對不同版本 jquery 支持還不一致。

歡迎發表自己的看法!

來自: InfoQ

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!