摘要:后現(xiàn)代的已經(jīng)到了暮年,該退出瀏覽器的舞臺了嗎體積過大很多人詬病體積很大,占用資源很多,但是讓我們來看一下最新的的大小。因為這就是個人寫代碼能力的問題了。。。。隨著時代的發(fā)展,的市場占有率是越來越少,以后會不會完全被拋棄,這我不知道。
發(fā)展歷程作者:陳大魚頭
github: KRISACHAN
write less, do more -- John Resig
? 在2005年8月的某一天,有一位叫John Resig的美(guo)人,在blog上連發(fā)3個栗子公開懟了Prototype的Behaviour的代碼冗長,在那之后沒多久就開源了風(fēng)靡全球的利器JQuery,還兼容了IE5.5,解決了開發(fā)者兼容性處理的心頭大患,之后JQuery就一發(fā)不可收拾,很快就統(tǒng)一了整個瀏覽器世界...
? 隨著時代的發(fā)展、各個瀏覽器逐漸趨向統(tǒng)一以及node的出現(xiàn),興起了許多現(xiàn)代化的工具,例如:react, vue, angularjs,webpack,gulp等可以解放開發(fā)者雙手,加快開發(fā)效率的庫與框架;并且瀏覽器端的API也日漸完善,ES6改革性的出現(xiàn),JQuery的代替方案變得越來越多,也因此對JQuery不滿甚至要完全廢棄JQuery的聲音也越來越多。
后現(xiàn)代的JQuery體積過大?JQuery已經(jīng)到了暮年,該退出瀏覽器的舞臺....了嗎?
? 很多人詬病JQuery體積很大,占用資源很多,但是讓我們來看一下最新的JQuery.min.js的大小。
事實上,最新的JQuery壓縮完之后也就85KB,這點開銷,在現(xiàn)代設(shè)備中都不是什么問題,移動設(shè)備4G甚至可以達到數(shù)MB每秒,PC端就更不用說了,所以說JQuery體積多大,占用多大資源這一條在一般情況下是不成立的!
DOM操作很麻煩?有人說,dom操作太麻煩,還是用MV**框架直接操作數(shù)組來得快一些....
? 現(xiàn)在github已經(jīng)移除了JQuery的依賴,但是并沒有使用任何現(xiàn)代化框架,而是用原生JS去進行了重構(gòu),我個人認為,JQuery被github移除不能說明JQuery不中用了,只能說明是瀏覽器端API以及ECMAScript已經(jīng)日漸完善了。
? 對于常規(guī)的DOM增刪改查,在MV**里只需要操作數(shù)組,是比較方便,但是在JQuery里我們也可以用操作數(shù)據(jù)的思維去實現(xiàn),封裝好要處理的DOM結(jié)果,用觀察者模式去監(jiān)聽數(shù)據(jù)源的變動從而更改DOM不一樣也可以很快嘛?
面條式代碼很丑?一長串的鏈式調(diào)用,看著就很煩
? 這鍋,JQuery是不背的。。。因為這就是個人寫代碼能力的問題了。。。。具體代碼就不寫了,在下面兩節(jié)中大家自己判斷吧......
跨域處理的優(yōu)勢JQuery在跨域中發(fā)揮的作用
? 現(xiàn)代化的前后端協(xié)作通常都會以跨域的方式進行,一般方式都是CORS了,后端開好權(quán)限,按AJAX的方式去請求,真香~
? 但是,如果在一些不得已要用JSONP的場合,例如第三方SDK使用,現(xiàn)代的框架處理起來就比較難受了,這里用JQuery就很方便了
const getJSON = async () => {
try {
const res = await $.ajax({
url,
dataType: "jsonp",
jsonp: "cb",
});
} catch (error) {
// do something;
};
};
? 單純地用ES6 + JQuery也是可以很好的完成任務(wù)
動畫處理JQuery在動畫處理上也發(fā)揮了很大的作用
? 雖然現(xiàn)在很多人寫動畫會用CSS3的屬性,Web Animations API或者JSON去寫,但是如果要寫一些step的動畫,用JQuery也是很好的選擇
const step1 = () => $.when(
dom1.animate({
left,
top
}, delay),
dom2.animate({
width,
height
}, delay)
).promise();
const step2 = () => $.when(
dom1.animate({
left,
top
}, delay),
dom2.animate({
width,
height
}, delay)
).promise();
const move = async () => {
await step1();
dom1.delay(500);
await step2();
};
? 其實這樣也可以把動畫寫得很好看
后記在我心里,JQuery永遠是個王者
? 我對技術(shù)沒有偏見,不管是JQuery也好,原生JS也好或者層出不窮的框架,都是工具,只要能好好的完成任務(wù)就是好技術(shù)。
? 隨著時代的發(fā)展,JQuery的市場占有率是越來越少,以后會不會完全被拋棄,這我不知道。只是JQuery代表的是一個時代,是瀏覽器發(fā)展的見證者,也是我心目中的王者,雖然我以后也很有可能會完全棄用它,但是它在我心目中的地位是不變的!
? JQuery,榮耀!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/6865.html
showImg(https://segmentfault.com/img/remote/1460000018747727?w=900&h=500); 簡介 heading 標簽、SEO、無障礙閱讀 ps: 內(nèi)容有點多,本來只想講一個點,但是關(guān)聯(lián)性太強了,所以辛苦大家了。 在學(xué)習(xí) HTML 標簽的時候,很多教程只告訴你 怎么用 而沒有講清楚 是什么,讓我們一起從 h1 到 h6 開始重新認識 HTM...
摘要:我們都知道因為同源策略的問題,瀏覽器的請求是可能隨便跨域的一定要有跨域頭或者借助,但是,中可以設(shè)置為不跨域,如下所示這樣之后我們會得到一個為的返回。 免費幫忙內(nèi)推阿里等各大IT公司的崗位,有興趣可以帶簡歷加微信angeltune 引言 前端技術(shù)真是一個發(fā)展飛快的領(lǐng)域,我三年前入職的時候只有原生XHR和Jquery ajax,我們還曾被JQuery 1.9版本版本以下不支持大文件請求這個...
摘要:網(wǎng)絡(luò)啟動開啟了一個共享的新時代,與實體經(jīng)濟的結(jié)合讓項目變得更加有意義,區(qū)塊鏈已經(jīng)走向了我們。直到年,互聯(lián)網(wǎng)和區(qū)塊鏈終于從概念上走到了一起,就是這場流行起來的共享之風(fēng)。風(fēng)險當然,伴隨著區(qū)塊鏈項目的毫無疑問是高風(fēng)險如影隨形。 作者簡介:董天一 ,IPFS/Filecoin中國區(qū)技術(shù)布道人 ,《IPFS指南》作者。畢業(yè)于北京大學(xué)軟件與微電子學(xué)院曾擔(dān)任甲骨文亞洲研發(fā)中心(中國)數(shù)據(jù)庫開發(fā)工程師...
閱讀 3156·2021-11-24 10:24
閱讀 2966·2021-11-11 16:54
閱讀 3086·2021-09-22 15:55
閱讀 2040·2019-08-30 15:44
閱讀 1910·2019-08-29 18:41
閱讀 2773·2019-08-29 13:43
閱讀 3063·2019-08-29 12:51
閱讀 1200·2019-08-26 12:19