- 相關(guān)推薦
jQuery的優(yōu)點(diǎn)及缺點(diǎn)的分析說(shuō)明
1、jQuery實(shí)現腳本與頁(yè)面的分離
在HTML代碼中,我們還經(jīng)?吹筋(lèi)似這樣的代碼:
<form id="myform" onsubmit=return validate();" >即使validate()函數可以被放置在一個(gè)外部文件中,實(shí)際上我們依然是把頁(yè)面與邏輯和事件混雜在一起。jQuery讓你可以將這兩部分分離。借助于jQuery,頁(yè)面代碼將如下所示:
接下來(lái),一個(gè)單獨的JS文件將包含以下事件提交代碼:
復制代碼 代碼如下:
$("myform").submit(function() {
...your code here
)}
這樣我們可以實(shí)現靈活性非常強的清晰頁(yè)面代碼。jQuery讓JavaScript代碼從HTML頁(yè)面代碼中分離出來(lái),就像數年前CSS讓樣式代碼與頁(yè)面代碼分離開(kāi)一樣。
2、最少的代碼做最多的事情
最少的代碼做最多的事情,這是jQuery的口號,而且名副其實(shí)。使用它的高級selector,開(kāi)發(fā)者只需編寫(xiě)幾行代碼就能實(shí)現令人驚奇的效果。開(kāi)發(fā)者無(wú)需過(guò)于擔憂(yōu)瀏覽器差異,它除了還完全支持Ajax,而且擁有許多提高開(kāi)發(fā)者編程效率的其它抽象概念。jQuery把JavaScript帶到了一個(gè)更高的層次。以下是一個(gè)非常簡(jiǎn)單的示例:
復制代碼 代碼如下:
$("p.neat").addClass("ohmy").show("slow");
通過(guò)以上簡(jiǎn)短的代碼,開(kāi)發(fā)者可以遍歷“neat”類(lèi)中所有的
元素,然后向其增加“ohmy”類(lèi),同時(shí)以動(dòng)畫(huà)效果緩緩顯示每一個(gè)段落。開(kāi)發(fā)者無(wú)需檢查客戶(hù)端瀏覽器類(lèi)型,無(wú)需編寫(xiě)循環(huán)代碼,無(wú)需編寫(xiě)復雜的動(dòng)畫(huà)函數,僅僅通過(guò)一行代碼就能實(shí)現上述效果。
3、性能
在大型JavaScript框架中,jQuery對性能的理解最好。盡管不同版本擁有眾多新功能,其最精簡(jiǎn)版本只有18KB大小,這個(gè)數字已經(jīng)很難再減少。jQuery的每一個(gè)版本都有重大性能提高。本篇文章講的是jQuery未經(jīng)過(guò)任何優(yōu)化的原始速度。如果將其與新一代具有更快JavaScript引擎的瀏覽器(如火狐3和谷歌Chrome)配合使用,開(kāi)發(fā)者在創(chuàng )建富體驗Web應用時(shí)將擁有全新速度優(yōu)勢。
4、它是一個(gè)“標準”
之所以使用引號,是以為jQuery并非一個(gè)官方標準。但是業(yè)內對jQuery的支持已經(jīng)非常廣泛。谷歌不但自己使用它,還提供給用戶(hù)使用。另外戴爾、新聞聚合網(wǎng)站Digg、WordPress、Mozilla和許多其它廠(chǎng)商也在使用它。微軟甚至將它整合到Visual Studio中。如此多的重量級廠(chǎng)商支持該框架,用戶(hù)大可以對其未來(lái)放心,大膽的對其投入時(shí)間。
5、插件
基于jQuery開(kāi)發(fā)的插件目前已經(jīng)有大約數千個(gè)。開(kāi)發(fā)者可使用插件來(lái)進(jìn)行表單確認、圖表種類(lèi)、字段提示、動(dòng)畫(huà)、進(jìn)度條等任務(wù)。jQuery社區已經(jīng)成長(cháng)為一個(gè)生態(tài)系統。這一點(diǎn)進(jìn)一步證明了上一條理由,它是一個(gè)安全的選擇。而且,jQuery正在主動(dòng)與“競爭對手”合作,例如Prototype。它們似乎在推進(jìn)JavaScript的整體發(fā)展,而不僅僅是在圖謀一己之私。
6、節省開(kāi)發(fā)者學(xué)習時(shí)間
當然要想真正學(xué)習jQuery,開(kāi)發(fā)者還是需要投入一點(diǎn)時(shí)間,尤其是如果你要編寫(xiě)大量代碼或自主插件的話(huà),更是如此。但是,開(kāi)發(fā)者可以采取“各個(gè)擊破”的方式,而且jQuery提供了大量示例代碼,入門(mén)是一件非常容易的事情。我建議開(kāi)發(fā)者在自己編寫(xiě)某類(lèi)代碼前,首先看一下是否有類(lèi)似插件,然后看一下實(shí)際的插件代碼,了解一下其工作原理。簡(jiǎn)而言之,學(xué)習jQuery不需要開(kāi)發(fā)者投入太多,就能夠迅速開(kāi)始開(kāi)發(fā)工作,然后逐漸提高技巧。
7、讓JavaScript編程變得有趣
我發(fā)現使用jQuery是一件充滿(mǎn)樂(lè )趣的事情。它簡(jiǎn)潔而強大,開(kāi)發(fā)者能夠迅速得到自己想要的結果。它解決了許多JavaScript問(wèn)題和難題。我過(guò)去曾討厭JavaScript編程,但現在卻非常喜歡它。通過(guò)一些基礎性的改進(jìn),開(kāi)發(fā)者可以真正去思考開(kāi)發(fā)下一代Web應用,不再因為語(yǔ)言或工具的差勁而煩惱。我相信它的“最少的代碼做最多的事情”口號。
jQuery的不足之處
當然,jQuery并非完美無(wú)缺。截止到目前我所發(fā)現的jQuery不足之處包括:
不能向后兼容。每一個(gè)新版本不能兼容早期的版本。舉例來(lái)說(shuō),有些新版本不再支持某些selector,新版jQuery卻沒(méi)有保留對它們的支持,而只是簡(jiǎn)單的將其移除。這可能會(huì )影響到開(kāi)發(fā)者已經(jīng)編寫(xiě)好的代碼或插件。
插件兼容性。與上一點(diǎn)類(lèi)似,當新版jQuery推出后,如果開(kāi)發(fā)者想升級的話(huà),要看插件作者是否支持。通常情況下,在最新版jQuery版本下,現有插件可能無(wú)法正常使用。開(kāi)發(fā)者使用的插件越多,這種情況發(fā)生的幾率也越高。我有一次為了升級到j(luò )Query 1.3,不得不自己動(dòng)手修改了一個(gè)第三方插件。
在同一頁(yè)面上使用多個(gè)插件時(shí),很容易碰到?jīng)_突現象,尤其是這些插件依賴(lài)相同事件或selector時(shí)最為明顯。這雖然不是jQuery自身的問(wèn)題,但卻又確實(shí)是一個(gè)難于調試和解決的問(wèn)題。
jQuery的穩定性。它沒(méi)有讓我的瀏覽器崩潰,我這兒指的是其版本發(fā)布策略。jQuery 1.3版發(fā)布后僅過(guò)數天,就發(fā)布了一個(gè)漏洞修正版1.3.1。他們還移除了對某些功能的支持,可能會(huì )影響許多代碼的正常運行。我希望類(lèi)似修改不要再出現。
在大型框架中,jQuery核心代碼庫對動(dòng)畫(huà)和特效的支持相對較差。但是實(shí)際上這不是一個(gè)問(wèn)題。目前在這方面有一個(gè)單獨的jQuery UI項目和眾多插件來(lái)彌補此點(diǎn)。
如果你還在猶豫是否要學(xué)習一個(gè)JavaScript框架,并困惑于選擇哪一個(gè)框架,那么我推薦你選擇jQuery。這并非說(shuō)其它框架不好,只是jQuery可能是最穩妥和最具回報性的選擇。
【jQuery的優(yōu)點(diǎn)及缺點(diǎn)的分析說(shuō)明】相關(guān)文章:
jQuery 源碼分析和Ready函數06-28
固態(tài)硬盤(pán)SSD有哪些優(yōu)點(diǎn)和缺點(diǎn)08-29
光療甲的缺點(diǎn)有哪些-光療甲的優(yōu)點(diǎn)10-02
竹木地板有哪些優(yōu)點(diǎn)-竹木地板的缺點(diǎn)10-20
jQuery程序設計08-05
jquery提交按鈕的代碼07-28
jQuery中prev()方法用法07-16
如何理解jquery事件冒泡09-15