真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

jquery性能,jquery百度百科

請(qǐng)問(wèn)jQuery是用來(lái)干什么的?

用處:jquery是基于javascript類庫(kù)的框架, 它里面提供了許多javascript類庫(kù),和一些css樣式表的封裝, 使用起來(lái)比較方便, 簡(jiǎn)化了用戶與瀏覽器的交互, 提高了系統(tǒng)的性能和開(kāi)發(fā)效率。

創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)營(yíng)銷推廣、網(wǎng)站重做改版、嵐山網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開(kāi)發(fā)成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為嵐山等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

jQuery設(shè)計(jì)的宗旨是“write Less,Do More”,即倡導(dǎo)寫(xiě)更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種簡(jiǎn)便的JavaScript設(shè)計(jì)模式,優(yōu)化HTML文檔操作、事件處理、動(dòng)畫(huà)設(shè)計(jì)和Ajax交互。

jQuery的核心特性可以總結(jié)為:具有獨(dú)特的鏈?zhǔn)秸Z(yǔ)法和短小清晰的多功能接口;具有高效靈活的css選擇器,并且可對(duì)CSS選擇器進(jìn)行擴(kuò)展;擁有便捷的插件擴(kuò)展機(jī)制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

擴(kuò)展資料:

語(yǔ)言特點(diǎn)

1、快速獲取文檔元素

jQuery的選擇機(jī)制構(gòu)建于Css的選擇器,它提供了快速查詢DOM文檔中元素的能力,而且大大強(qiáng)化了JavaScript中獲取頁(yè)面元素的方式。

2、提供漂亮的頁(yè)面動(dòng)態(tài)效果

jQuery中內(nèi)置了一系列的動(dòng)畫(huà)效果,可以開(kāi)發(fā)出非常漂亮的網(wǎng)頁(yè),許多網(wǎng)站都使用jQuery的內(nèi)置的效果,比如淡入淡出、元素移除等動(dòng)態(tài)特效。

3、創(chuàng)建AJAX無(wú)刷新網(wǎng)頁(yè)

AJAX是異步的JavaScript和ML的簡(jiǎn)稱,可以開(kāi)發(fā)出非常靈敏無(wú)刷新的網(wǎng)頁(yè),特別是開(kāi)發(fā)服務(wù)器端網(wǎng)頁(yè)時(shí),比如PHP網(wǎng)站,需要往返地與服務(wù)器通信,如果不使用AJAX,每次數(shù)據(jù)更新不得不重新刷新網(wǎng)頁(yè),而使用AJAX特效后,可以對(duì)頁(yè)面進(jìn)行局部刷新,提供動(dòng)態(tài)的效果。

參考資料來(lái)源:百度百科--jQuery

如何測(cè)試自己寫(xiě)的JQUERY JS性能的問(wèn)題

通常,js本身不會(huì)有什么性能問(wèn)題,現(xiàn)代瀏覽器的js引擎都是非常優(yōu)越的,一點(diǎn)點(diǎn)代碼寫(xiě)法上造成的性能差異完全不會(huì)有實(shí)質(zhì)體現(xiàn)(比如同樣的代碼,eval會(huì)導(dǎo)致代碼幾十倍速率的差異;setTimeout性能低于setInterval, for in循環(huán)性能低于for循環(huán)等),所以除非是針對(duì)低性能平臺(tái)開(kāi)發(fā)(如wap并兼容低端移動(dòng)設(shè)備)無(wú)需在意,關(guān)注下內(nèi)存泄露,頁(yè)面渲染效率即可,目前的性能檢測(cè)工具都不是單單針對(duì)js的,而是監(jiān)測(cè)整個(gè)頁(yè)面的整體性能表現(xiàn),比如chrome,ie11自帶的調(diào)試工具都具備性能監(jiān)測(cè)功能,常用的性能優(yōu)化原則無(wú)非都是些條條框框(比如yahoo 14條),如果網(wǎng)站流量達(dá)到一定量級(jí),可以借助更優(yōu)秀的性能監(jiān)測(cè)工具(web speed等)采用更高級(jí)更系統(tǒng)的性能優(yōu)化方案(lazyload,bigpipe等)來(lái)做網(wǎng)站優(yōu)化?;氐絡(luò)s,具體開(kāi)發(fā)中實(shí)際上會(huì)為了開(kāi)發(fā)效率與代碼維護(hù)而故意犧牲性能來(lái)達(dá)到目的,很多時(shí)候優(yōu)化的原則即兩權(quán)相較取其輕

jquery 簡(jiǎn)介

JQuery是繼prototype之后又一個(gè)優(yōu)秀的Javascript庫(kù)。它是輕量級(jí)的js庫(kù) ,它兼容CSS3,還兼容各種瀏覽器(IE 6.0+, FF1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后續(xù)版本將不再支持IE6/7/8瀏覽器。jQuery使用戶能更方便地處理HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用)、events、實(shí)現(xiàn)動(dòng)畫(huà)效果,并且方便地為網(wǎng)站提供AJAX交互。jQuery還有一個(gè)比較大的優(yōu)勢(shì)是,它的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇。jQuery能夠使用戶的html頁(yè)面保持代碼和html內(nèi)容分離,也就是說(shuō),不用再在html里面插入一堆js來(lái)調(diào)用命令了,只需要定義id即可。

jQuery是一個(gè)兼容多瀏覽器的javascript庫(kù),核心理念是write less,do more(寫(xiě)得更少,做得更多)。jQuery在2006年1月由美國(guó)人John Resig在紐約的barcamp發(fā)布,吸引了來(lái)自世界各地的眾多JavaScript高手加入,由Dave Methvin率領(lǐng)團(tuán)隊(duì)進(jìn)行開(kāi)發(fā)。如今,jQuery已經(jīng)成為最流行的javascript庫(kù),在世界前10000個(gè)訪問(wèn)最多的網(wǎng)站中,有超過(guò)55%在使用jQuery。

jQuery是免費(fèi)、開(kāi)源的,使用MIT許可協(xié)議。jQuery的語(yǔ)法設(shè)計(jì)可以使開(kāi)發(fā)更加便捷,例如操作文檔對(duì)象、選擇DOM元素、制作動(dòng)畫(huà)效果、事件處理、使用Ajax以及其他功能。除此以外,jQuery提供API讓開(kāi)發(fā)者編寫(xiě)插件。其模塊化的使用方式使開(kāi)發(fā)者可以很輕松的開(kāi)發(fā)出功能強(qiáng)大的靜態(tài)或動(dòng)態(tài)網(wǎng)頁(yè)。

jQuery,顧名思義,也就是JavaScript和查詢(Query),即是輔助JavaScript開(kāi)發(fā)的庫(kù)。

歷史

大概在 1992 年,一家稱作 Nombas 的公司開(kāi)發(fā)了一種叫做 C 減減(C-minus-minus,簡(jiǎn)稱 Cmm)的嵌入式腳本語(yǔ)言。Cmm 背后的理念很簡(jiǎn)單:一個(gè)足夠強(qiáng)大可以替代宏操作(macro)的腳本語(yǔ)言,同時(shí)保持與 C (和 C ++)足夠的相似性,以便開(kāi)發(fā)人員能很快學(xué)會(huì)。這個(gè)腳本語(yǔ)言捆綁在一個(gè)叫做 CEnvi 的共享軟件中,它首次向開(kāi)發(fā)人員展示了這種語(yǔ)言的威力。

Nombas 最終把 Cmm 的名字改成了 ScriptEase,原因是后面的部分(mm)聽(tīng)起來(lái)過(guò)于消極,同時(shí)字母 C “令人害怕”。

當(dāng) Netscape Navigator 嶄露頭角時(shí),Nombas 開(kāi)發(fā)了一個(gè)可以嵌入網(wǎng)頁(yè)中的 CEnvi 的版本。這些早期的試驗(yàn)被稱為 Espresso Page(濃咖啡般的頁(yè)面),它們代表了第一個(gè)在萬(wàn)維網(wǎng)上使用的客戶端語(yǔ)言。而 Nombas 絲毫沒(méi)有料到它的理念將會(huì)成為萬(wàn)維網(wǎng)的一塊重要基石。

當(dāng)網(wǎng)上沖浪越來(lái)越流行時(shí),對(duì)于開(kāi)發(fā)客戶端腳本的需求也逐漸增大。此時(shí),大部分因特網(wǎng)用戶還僅僅通過(guò) 28.8 kbit/s 的調(diào)制解調(diào)器連接到網(wǎng)絡(luò),即便這時(shí)網(wǎng)頁(yè)已經(jīng)不斷地變得更大和更復(fù)雜。而更加加劇用戶痛苦的是,僅僅為了簡(jiǎn)單的表單有效性驗(yàn)證,就要與服務(wù)器進(jìn)行多次地往返交互。設(shè)想一下,用戶填完一個(gè)表單,點(diǎn)擊提交按鈕,等待了 30 秒的處理后,看到的卻是一條告訴你忘記填寫(xiě)一個(gè)必要的字段。

那時(shí)正處于技術(shù)革新最前沿的 Netscape,開(kāi)始認(rèn)真考慮開(kāi)發(fā)一種客戶端腳本語(yǔ)言來(lái)解決簡(jiǎn)單的處理問(wèn)題。

當(dāng)時(shí)工作于 Netscape 的 Brendan Eich,開(kāi)始著手為即將在 1995 年發(fā)行的 Netscape Navigator 2.0 開(kāi)發(fā)一個(gè)稱之為 LiveScript 的腳本語(yǔ)言,當(dāng)時(shí)的目的是在瀏覽器和服務(wù)器(本來(lái)要叫它 LiveWire)端使用它。Netscape 與 Sun 及時(shí)完成 LiveScript 實(shí)現(xiàn)。

就在 Netscape Navigator 2.0 即將正式發(fā)布前,Netscape 將其更名為 JavaScript,目的是為了利用 Java 這個(gè)因特網(wǎng)時(shí)髦詞匯。Netscape 的賭注最終得到回報(bào),JavaScript 從此變成了因特網(wǎng)的必備組件。

因?yàn)?JavaScript 1.0 如此成功,Netscape 在 Netscape Navigator 3.0 中發(fā)布了 1.1 版。恰巧那個(gè)時(shí)候,微軟決定進(jìn)軍瀏覽器,發(fā)布了 IE 3.0 并搭載了一個(gè) JavaScript 的克隆版,叫做 JScript(這樣命名是為了避免與 Netscape 潛在的許可糾紛)。微軟步入 Web 瀏覽器領(lǐng)域的這重要一步雖然令其聲名狼藉,但也成為 JavaScript 語(yǔ)言發(fā)展過(guò)程中的重要一步。

在微軟進(jìn)入后,有 3 種不同的 JavaScript 版本同時(shí)存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase。與 C 和其他編程語(yǔ)言不同的是,JavaScript 并沒(méi)有一個(gè)標(biāo)準(zhǔn)來(lái)統(tǒng)一其語(yǔ)法或特性,而這 3 種不同的版本恰恰突出了這個(gè)問(wèn)題。隨著業(yè)界擔(dān)心的增加,這個(gè)語(yǔ)言的標(biāo)準(zhǔn)化顯然已經(jīng)勢(shì)在必行。

2006年1月,jQuery的第一個(gè)版本面世,至今已經(jīng)有10年多了(注:這個(gè)時(shí)間點(diǎn)是截止至出書(shū)時(shí)間)。雖然過(guò)了這么久,但它依然以其簡(jiǎn)潔、靈活的編程風(fēng)格讓人一見(jiàn)傾心。在本篇文章中,我們將講述jQuery的發(fā)展 歷史 ,讓讀者對(duì)jQuery有更多的了解。

在jQuery迅速發(fā)展的同時(shí),一些大的廠商也看中了商機(jī)。2009年9月,微軟和諾基亞公司正式宣布支持開(kāi)源的jQuery庫(kù),另外,微軟公司還宣稱他們將把jQuery作為Visual Studio工具集的一部分。他將提供包括jQuery的智能提示、代碼片段、示例文檔編制等內(nèi)容在內(nèi)的功能。微軟和諾基亞公司將長(zhǎng)期成為jQuery的用戶成員,其他成員還有Google,Intel,IBM,Intuit等公司。

2009年1月,jQuery 1.3版發(fā)布,它使用了全新的選擇符引擎Sizzle,在各個(gè)瀏覽器下全面超越其他同類型JavaScript框架的查詢速度,程序庫(kù)的性能也因此有了極大提升。這一版本的第2個(gè)變化就是提供live()方法,使用live()方法可以為當(dāng)前及將來(lái)增加的元素綁定事件,在1.3版之前,如果要為將來(lái)增加的元素綁定事件,需要使用livequery插件,而在1.3版中,可以直接用live()方法。 2005年8月,John Resig提議改進(jìn)Prototype的“Behaviour”庫(kù),于是他在blog上發(fā)表了自己的想法,并用了3個(gè)例子做說(shuō)明。

2010年2月,jQuery 1.4.2版發(fā)布,它新增了有關(guān)事件委托的兩個(gè)方法:delegate()和undelegate()。delegate()用于替代1.3.2中的live()方法。這個(gè)方法比live()來(lái)的方便,而且也可以達(dá)到動(dòng)態(tài)添加事件的作用。比如給表格的每個(gè)td綁定hover事件

特點(diǎn)

1.動(dòng)態(tài)特效

2.AJAX

3.通過(guò)插件來(lái)擴(kuò)展

4.方便的工具 - 例如瀏覽器版本判斷

5.漸進(jìn)增強(qiáng)

6.鏈?zhǔn)秸{(diào)用

7.多瀏覽器支持,支持Internet Explorer6.0+、Opera9.0+、Firefox2+、Safari2.0+、Chrome1.0+(在2.0.0中取消了對(duì)Internet Explorer6,7,8的支持)

歷史 版本

jQuery 1.0

(2006年8月):該庫(kù)的第一個(gè)穩(wěn)定版本,已經(jīng)具有了對(duì)CSS選擇符、事件處理和AJAX交互的穩(wěn)健支持。

jQuery 1.1

(2007年1月):這一版大幅簡(jiǎn)化了API。許多較少使用的方法被合并,減少了需要掌握和解釋的方法數(shù)量。

jQuery 1.1.3

(2007年7月):這次小版本變化包含了對(duì)jQuery選擇符引擎執(zhí)行速度的顯著提升。從這個(gè)版本開(kāi)始,jQuery的性能達(dá)到了Prototype、Mootools以及Dojo等同類JavaScript庫(kù)的水平。

jQuery 1.2

(2007年9月):這一版去掉了對(duì)XPath選擇符的支持,原因是相對(duì)于CSS語(yǔ)法它已經(jīng)變得多余了。這一版能夠支持對(duì)效果的更靈活定制,而且借助新增的命名空間事件,也使插件開(kāi)發(fā)變得更容易。

jQuery UI(2007年9月):這個(gè)新的插件套件是作為曾經(jīng)流行但已過(guò)時(shí)的Interface插件的替代項(xiàng)目而發(fā)布的。jQuery UI中包含大量預(yù)定義好的部件(widget),以及一組用于構(gòu)建高級(jí)元素(例如可拖放的界面元素)的工具。

jQuery 1.2.6

(2008年5月):這一版主要是將Brandon Aaron開(kāi)發(fā)的流行的Dimensions插件的功能移植到了核心庫(kù)中。

jQuery 1.3

(2009年1月):這一版使用了全新的選擇符引擎Sizzle,庫(kù)的性能也因此有了極大提升。這一版正式支持事件委托特性。

jQuery 1.3.2

(2009年2月):這次小版本升級(jí)進(jìn)一步提升了庫(kù)的性能,例如改進(jìn)了:visible/:hidden選擇符、.height()/.width()方法的底層處理機(jī)制。另外,也支持查詢的元素按文檔順序返回。

jQuery 1.4

(2010年1月14號(hào)):對(duì)代碼庫(kù)進(jìn)行了內(nèi)部重寫(xiě)組織,開(kāi)始建立一些風(fēng)格規(guī)范。老的core.js文件被分為attribute.js,css.js,data.js,manipulation.js,traversing.js和queue.js;CSS和attribute的邏輯分離。

重要變化:

1. Ajax重寫(xiě)

Ajax模塊完全進(jìn)行了重寫(xiě)。新增一個(gè)jXHR對(duì)象,為不同瀏覽器內(nèi)置的XMLHttpRequest提供了一致的超集。對(duì)于XMLHttpRequest之外的傳輸機(jī)制,比如JSONP請(qǐng)求,jXHR對(duì)象也可以進(jìn)行處理。(詳情可以參見(jiàn):jQuery.ajax文檔)

此外,系統(tǒng)的可擴(kuò)展性大大增強(qiáng),可以附加各種數(shù)據(jù)處理器、過(guò)濾器和傳輸機(jī)制,為開(kāi)發(fā)新的Ajax插件提供了方便。

2. 延遲對(duì)象

延遲對(duì)象(Deferred Object,jQuery.Deferred對(duì)象)是一個(gè)可鏈接的(chainable)實(shí)用工具對(duì)象,實(shí)現(xiàn)了Promise接口,可以在回調(diào)隊(duì)列中注冊(cè)多個(gè)回調(diào)、調(diào)用回調(diào)隊(duì)列并轉(zhuǎn)發(fā)任何同步/異步函數(shù)的成敗狀態(tài)。正如Using Deferreds in jQuery 1.5一文中說(shuō)明的,其結(jié)果是在jQuery中能夠?qū)⒁蕾囉谀硞€(gè)任務(wù)(事件)結(jié)果的邏輯與任務(wù)本身解耦了。這一點(diǎn)在JavaScript中其實(shí)并不新鮮,Mochikit和Dojo等已經(jīng)實(shí)現(xiàn)有些日子了。由于jQuery 1.5的Ajax模塊內(nèi)置使用了延遲對(duì)象,因此通過(guò)jQuery編寫(xiě)Ajax程序?qū)⒆詣?dòng)獲得這一功能。

開(kāi)發(fā)人員借此可以使用無(wú)法立即獲得的返回值(如異步Ajax請(qǐng)求的返回結(jié)果),而且第一次能夠附加多個(gè)事件處理器。

例如,使用了新的jQuery內(nèi)部Ajax API就可以實(shí)現(xiàn)下面的代碼了:

// Assign handlers immediately after making the request,// and remember the jxhr object for this request var 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 above jxhr.complete(function(){ alert("second complete"); });

此外,使用jQuery.Deferred還可以開(kāi)發(fā)自己的延遲對(duì)象。更多詳情參見(jiàn):延遲對(duì)象文檔。

3. jQuery.sub()

jQuery 1.5提供了一種創(chuàng)建和修改jQuery副本的方式??梢杂脕?lái)添加不向外部公開(kāi)的方法,或者對(duì)jQuery的某些方法進(jìn)行重新定義以提供新功能,或者提供更好的封裝、避免名稱空間沖突。當(dāng)然,也可以用來(lái)開(kāi)發(fā)插件,但Resig強(qiáng)烈建議在開(kāi)發(fā)插件之前,先考慮jQuery UI widget工廠。

值得注意的是,sub函數(shù)并不提供真正的隔離,所有方法、數(shù)據(jù)、調(diào)用仍然依靠jQuery本身來(lái)支持。

4. 遍歷性能提高

在新版本中.children(),.prev(),.next()幾個(gè)常用的遍歷函數(shù)性能有了顯著提高。

5. 內(nèi)部開(kāi)發(fā)系統(tǒng)

John Resig還特別提到了jQuery團(tuán)隊(duì)內(nèi)部開(kāi)發(fā)系統(tǒng)的兩點(diǎn)改變:一是服務(wù)器端用Node.js替換了老的Java/Rhino系統(tǒng),使得團(tuán)隊(duì)可以專注于JavaScript環(huán)境的新變化;二是所用的代碼優(yōu)化程序從Google Closure切換到UglifyJS,新工具的壓縮效果非常令人滿意。

使用方法

jQuery可以下載使用,有兩個(gè)版本的 jQuery 可供下載

Production version - 用于實(shí)際的網(wǎng)站中,已被精簡(jiǎn)和壓縮。

Development version - 用于測(cè)試和開(kāi)發(fā)(未壓縮,是可讀的代碼)

jQuery 1.8.0版時(shí)壓縮前后的對(duì)比

插件機(jī)制

jQuery的官方插件是jQuery UI。開(kāi)發(fā)者可以任意擴(kuò)展jQuery的函數(shù)庫(kù)或者按照自己的需求開(kāi)發(fā)UI組件。網(wǎng)上已經(jīng)有數(shù)以萬(wàn)計(jì)的jQuery插件,覆蓋各種各樣的需求。例如Ajax輔助、數(shù)據(jù)表格、動(dòng)態(tài)列表、XML工具、拖曳、cookie處理、彈出層等等。jQuery 的文檔說(shuō)明很全,而且各種應(yīng)用也說(shuō)得很詳細(xì),同時(shí)還有許多成熟的插件可供選擇,例如ComponentOne Studio for ASP NET Wijmo.

隨著jQuery插件在網(wǎng)站建設(shè)過(guò)程中的使用率不斷的增加,所以有必要跟進(jìn)時(shí)代步伐開(kāi)發(fā)出一些新的插件/代碼片段,以此來(lái)鞏固并提高前端用戶體驗(yàn),將用戶體驗(yàn)提升到一個(gè)新的高度。其中包括Flat jQuery Price Slider、Gmaps jQuery Map Plugin 、FormChimp——MailChimp Ajax plugin for jQuery 等。

控件

jQuery Gantt控件是一個(gè)基于原生HTML5/jQuery,功能豐富的控件,該控件真正實(shí)現(xiàn)了跨平臺(tái),在許多設(shè)備和瀏覽器中無(wú)縫的運(yùn)行。

使用項(xiàng)目甘特圖中內(nèi)置的調(diào)度,依賴等功能實(shí)現(xiàn)任務(wù)分層列表的可視化。

使用資源甘特圖實(shí)現(xiàn)一個(gè)資源利用視圖。

使用基于API的jQuery或者基于API的MVC可幫您輕松地安裝甘特圖并加快應(yīng)用速度。

可與諸如KnockOut(KO),jQuery.tmpl等流行的jQuery模式一同使用。

jquery動(dòng)態(tài)加載div會(huì)降低網(wǎng)頁(yè)的性能嗎?

這就看你的復(fù)雜程度了。

如果你想當(dāng)?shù)膹?fù)雜,動(dòng)態(tài)需要很復(fù)雜的運(yùn)算后再添加無(wú)數(shù)div,那肯定會(huì)印象性能的。

但是一般來(lái)說(shuō)你動(dòng)態(tài)加載div不會(huì)影響太大的性能。

但是動(dòng)態(tài)加載div會(huì)有幾個(gè)特性

第一,如果客戶端禁用javascript的時(shí)候,那么這個(gè)div將無(wú)法加載。那么我們做網(wǎng)頁(yè)的時(shí)候一般都回考慮到,如果這個(gè)是一個(gè)修飾性的內(nèi)容,那么可以動(dòng)態(tài)加載,如果是功能性內(nèi)容,那么就直接輸出。

第二,這個(gè)動(dòng)態(tài)加載的問(wèn)題也關(guān)系到搜索引擎的優(yōu)化,在搜索引擎抓取內(nèi)容的過(guò)程中,肯定是不執(zhí)行javascript,就是按照你輸出的html結(jié)構(gòu)來(lái)抓取的。

第三,就是一個(gè)重復(fù)性的問(wèn)題,比如有很多人在做圓角的時(shí)候需要一些修飾性的沒(méi)有實(shí)際意義的節(jié)點(diǎn),而整個(gè)網(wǎng)頁(yè)中又會(huì)出現(xiàn)很多個(gè)這樣的圓角,這時(shí)候用動(dòng)態(tài)加載也是很方便和合理的。如果直接輸出N多沒(méi)有意義的節(jié)點(diǎn)也不好的。

jquery和vue效率對(duì)比

vue所提倡的數(shù)據(jù)驅(qū)動(dòng)視圖和jQuery的直接操作DOM在編寫(xiě)頁(yè)面時(shí)的思路是完全不同的。雖然兩種思路是完全不同的,但也不能說(shuō)是不能一起用的,在某些沒(méi)有辦法的情況下(例如需要操作dom的情況下),把jQuery和vue用在一塊是完全沒(méi)問(wèn)題的,當(dāng)然把這兩種技術(shù)用在一起是肯定不會(huì)出現(xiàn)在最佳實(shí)踐里的,因?yàn)榇_實(shí)沒(méi)有特殊情況的話,這樣用就是有點(diǎn)自找麻煩了。

以下是對(duì)傳統(tǒng)jq與目前最熱的vue進(jìn)行的技術(shù)特性對(duì)比:

1、精力集中。

Jq偏重于對(duì)dom的操作,由它的函數(shù)就很容易看出來(lái),$()、parent()、find()。我們用jq的時(shí)候經(jīng)常要去考慮怎么去渲染數(shù)據(jù),怎么從視圖中取到數(shù)據(jù),操作數(shù)據(jù)前必須對(duì)dom節(jié)點(diǎn)進(jìn)行選取修改賦值等操作,這其實(shí)分散了我們的本該放在業(yè)務(wù)邏輯上的精力。而Vue則是基于MVVM思想,數(shù)據(jù)驅(qū)動(dòng),雙向綁定,只需要定義好渲染規(guī)則,如果數(shù)據(jù)發(fā)生改變,vue會(huì)幫我們重新渲染整個(gè)頁(yè)面,所以我們只需將注意力放在數(shù)據(jù)操作上就可以了。

2、代碼結(jié)構(gòu)。

如果你用jq沒(méi)有好的代碼架構(gòu),很容易就回出現(xiàn)一種情況就是:js里寫(xiě)著html元素代碼,而且可能會(huì)遍布很多地方。因?yàn)樵鰟h改查你都需要對(duì)dom進(jìn)行操作,這里甚至可能會(huì)寫(xiě)多了些冗余代碼。代碼架構(gòu)好一點(diǎn)的,可能會(huì)寫(xiě)成一種簡(jiǎn)版框架(即有專門的渲染函數(shù),增刪改查都會(huì)調(diào)用這個(gè)函數(shù)),依然是全域的,需要閉包。而vue就沒(méi)有這個(gè)問(wèn)題方法全部寫(xiě)在methods中,提供多種鉤子函數(shù)對(duì)頁(yè)面渲染過(guò)成進(jìn)行精準(zhǔn)操作。

3、操作性。

用jq去操作dom實(shí)際上是蠻麻煩的。比如說(shuō)又個(gè)對(duì)象數(shù)組已經(jīng)渲染成表格了,這時(shí)你需要修改某一個(gè)id的那個(gè)對(duì)象的數(shù)據(jù)行,jq的話最麻煩的做法就是在遍歷里面先拿到id,檢查相等,相等的話,用index去拿到要改的那個(gè)dom,再重新渲染。而用vue的話,可以直接修改數(shù)據(jù)就可以了,而且你甚至可以用Array.map Array.filter ,方便快捷,提升開(kāi)發(fā)效率

4、模塊化。

目前無(wú)論前端還是后端開(kāi)發(fā),越來(lái)越傾向于模塊化組件化,以求降低不同模塊,不同功能區(qū)塊之間的耦合度,便于后期業(yè)務(wù)的修改與拓展,vue完全cover上述特性,而使用jq的時(shí)候,如果你的js牛逼轟轟的寫(xiě)得已經(jīng)超長(zhǎng)了,然后你又覺(jué)得需要分下模塊了,這時(shí)你有兩選擇,

1是用seajs,requirejs等,

2是用原生的import去管理你的代碼。說(shuō)實(shí)話,我沒(méi)怎么用過(guò)requirejs去分模塊,可能是我壓根就想沒(méi)到這些js要怎么分。

5、單頁(yè)面實(shí)現(xiàn)。

單頁(yè)面的實(shí)現(xiàn)原理估計(jì)大家都很熟了,一般是幾個(gè)div在來(lái)回切換。如果一開(kāi)始已經(jīng)寫(xiě)好html,再來(lái)回切的話,html是太長(zhǎng)了。如果用js去寫(xiě)又拼的很麻煩。如果你想用jq、原生實(shí)現(xiàn)頁(yè)面切換,我能想到比較好的方式是用模版引擎...嗎?但其實(shí)單頁(yè)面的實(shí)現(xiàn)我感覺(jué)沒(méi)那么簡(jiǎn)單,你不單單要考慮html能否單獨(dú)寫(xiě)出來(lái),還要考慮js需不需要按需加載,路由需不需要等等。。。用vue就不需要煩這些東西,vue自動(dòng)構(gòu)建單頁(yè)應(yīng)用,使用router模擬跳轉(zhuǎn)。

6、組件的復(fù)用。

用vue最爽的莫過(guò)于使用別人寫(xiě)好的組件。目前vue的生態(tài)已經(jīng)非常龐大,主流的組件庫(kù)有element-ui,iview,使用主流的組件庫(kù)不僅避免了我們重復(fù)造輪子,而且方便新員工快速接手項(xiàng)目,某個(gè)大神的組件總結(jié):;app=news_articlegroup_id=6718405521088446988req_id=20190730093011010018026159736CF92,其實(shí)如果項(xiàng)目大的時(shí)候,有些組件(一些功能和視圖的集合)可能會(huì)復(fù)用。這些相對(duì)于jq就是插件了,個(gè)人不喜歡script引入插件(任性)

7、性能。

vue使用了虛擬dom技術(shù),能夠減少 dom的操作,能提高一定的效率。


本文題目:jquery性能,jquery百度百科
本文鏈接:http://weahome.cn/article/hocips.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部