日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript 总结几个提高性能知识点(转)

發(fā)布時間:2025/3/17 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript 总结几个提高性能知识点(转) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

具體看連接吧:

JavaScript 總結(jié)幾個提高性能知識點

http://www.cnblogs.com/ys-ys/p/5132013.html

前段時間花時間看了大半的《High Performance JavaScript》這本書啊,然后就開始忙項目了,慶幸最忙的一周已經(jīng)熬過去了。由于空不出時間,這個月寫的學(xué)習(xí)筆記也不多,忙完最苦X的一周,這兩 天晚上也算是挑燈夜讀了...終于是在殘血之際將這本書shut down了...

既然讀完了,總歸是要學(xué)到些什么的。說說對這本書的看法先吧,整體的來說,內(nèi)容還是不錯的,就是感覺有點老了(作為前端小白,也可能是自身水平有 限,未能體會到其中真意)。看這本書的過程中也是寫了挺多代碼用以測試的,并且對本書提倡的寫法和原先大眾的寫法的執(zhí)行分別進(jìn)行了斷點跟蹤,對于能實際測 出的問題進(jìn)行理解,當(dāng)然,下斷點跟著執(zhí)行也看不出的那也沒辦法咯。對于書中的知識點,這里只是簡單的整理出個人所推崇的一部分,當(dāng)然~ 不喜勿噴。

針對js文件的加載位置

在HTML文件中,<script>標(biāo)簽是可以加在<head>區(qū)域和<body>區(qū)域的。這里鑒于 JavaScript執(zhí)行和UI渲染的單線程原因,如果js文件載入會阻塞后面對于頁面的解析過程,頁面會等到j(luò)s文件完全加載并運行后才繼續(xù)執(zhí)行該做的 操作。那么問題就來了,這樣可能會出現(xiàn)頁面空白or卡頓現(xiàn)象。作為一名前端開發(fā),重要的不僅僅止于實現(xiàn)了需求,應(yīng)該還有優(yōu)質(zhì)的用戶體驗。那么我們就需要消 除用戶枯燥的等待,針對這個問題,這里有本獸想到的兩種解決方案:

1. ?如果js文件沒有特殊要求指明需要在頁面渲染之前載入及編譯完成的,那么選擇將js文件放 到</body>標(biāo)簽前(既所有的頁面所呈現(xiàn)內(nèi)容的后面),css文件還是放到<head>區(qū)域(誰也不愿意看一個布局雜亂無章 的頁面)。這樣做就能先讓用戶看到有布局的頁面而不是空白頁了,那么也會有人指出:那數(shù)據(jù)得通過js請求加載進(jìn)來啊,怎么辦呢?可以對數(shù)據(jù)的加載做排序, 急需呈現(xiàn)的接口放前面執(zhí)行,不是那么需要的可以延后執(zhí)行,同時做個簡單的載入動畫or提示。

2. ?如果這些js文件有指明需要先執(zhí)行了,才能更好的展示頁面內(nèi)容,那么就在第一個js或者頁面上先放個載入小動畫,可以一些有趣的或者萌萌的動畫場景。這樣也是能較好的避免用戶等待的無聊,說不定人家還對這個載入動畫更感興趣呢,這樣可提升項目的用戶體驗感。

最終推薦:將<script>標(biāo)簽盡可能的放到</body>標(biāo)簽前面加載,以提升用戶體驗。

針對js文件的合并
在 很多團隊開發(fā)中,我們可能會將不同功能的代碼塊分別放置在不同的js文件中,以便于開發(fā)過程中眾人合作寫代碼會更加方便,畢竟只需要找對應(yīng)文件夾或文件而 不是在一個很長的文件中找一個方法。這確實是會提高團隊開發(fā)效率及新人加入后的更容易進(jìn)行二次開發(fā)及維護。那么將這個問題放到頁面性能里呢?這正是問題所 在,在這本書中指出:Each HTTP request brings with it additional performance overhead,so downloading one single 100 KB file will be faster than downloading four 25 KB files.

下載1個100KB的文件比下載4個25KB的文件要快,而開發(fā)過程中區(qū)分開各個文件又有很大的好處,那么合并這個問題也就放在開發(fā)完后再處理咯,相信這個操作大家都不會陌生吧,現(xiàn)在的前端工具這么豐富,各位習(xí)慣用什么壓縮就用什么壓縮吧~
這里簡單提出下,在載入文件方面還可以用到defer和async屬性,用于延遲加載和異步加載,在現(xiàn)代瀏覽器中,大多數(shù)是已經(jīng)支持defer屬性了,還沒習(xí)慣用這個額,也不知道具體會不會存在什么問題。有興趣的朋友可自行g(shù)oogle該知識點,這里件簡單提下吧。

現(xiàn)在的框架也大多配合懶加載和按需加載了。

更快速的數(shù)據(jù)訪問

對于瀏覽器來說,一個標(biāo)識符所處的位置越深,去讀寫他的速度也就越慢(對于這點,原型鏈亦是如此)。這個應(yīng)該不難理解,簡單比喻就是:雜貨店離你家越遠(yuǎn),你去打醬油所花的時間就越長... 熊孩子,打個醬油那么久,菜早燒焦了 -.-~

如果我們需要在當(dāng)前函數(shù)內(nèi)多次用到一個變量值,那么我們可以用一個局部變量先將其存儲起來,

轉(zhuǎn)載于:https://www.cnblogs.com/rechen/p/5132061.html

總結(jié)

以上是生活随笔為你收集整理的JavaScript 总结几个提高性能知识点(转)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。