JS代碼優(yōu)化技巧之通俗版(減少js體積)
(網(wǎng)頁(yè)總大小為155.k,而JS就占了100.3K)
是時(shí)候優(yōu)化下JS了
關(guān)于JS優(yōu)化的文章已經(jīng)很多了,大多技術(shù)性很強(qiáng),像什么變量、字符串、類型,就不做介紹了,也不需要介紹,我也不懂,你知道了也沒(méi)用。大多數(shù)站長(zhǎng)都是“拿來(lái)主義”,我只需要告訴JS怎么放,刪那里就可以了。
現(xiàn)在的網(wǎng)站都加的有統(tǒng)計(jì)代碼、分享工具、評(píng)論列表、相關(guān)文章插件等工具,而要實(shí)現(xiàn)強(qiáng)大的功能,必須使用JS文件,正是這些JS插件,再增強(qiáng)了網(wǎng)站功能的同時(shí),也給影響了網(wǎng)站速度。
最常用的JS優(yōu)化辦法
通過(guò)博客調(diào)用JS來(lái)看,目前最影響速度的為無(wú)覓插件(952ms),拿福能廣告(434ms)。如果確實(shí)要用可以保留,適當(dāng)?shù)母鶕?jù)官方教材做做優(yōu)化,下面盧松松介紹幾個(gè)最常用的JS優(yōu)化方法。
方法一:把不重要的JS放在頁(yè)面最底部
這是最簡(jiǎn)單,也是效果最好的優(yōu)化方法,把不重要的JS通通放到頁(yè)面的最下面body的上面,實(shí)現(xiàn)異步加載,也就是等網(wǎng)頁(yè)都加載完了,最后在加載這些不重要的JS,這樣就不影響網(wǎng)頁(yè)速度了。
如低調(diào)與華麗模板中公共的util.js公共文件,默認(rèn)效果為,瀏覽網(wǎng)頁(yè)時(shí)會(huì)在網(wǎng)頁(yè)中出現(xiàn)“回頂部、寫評(píng)論”特效?,F(xiàn)在把wumii(無(wú)覓插件JS)和jiathis(分享工具JS)統(tǒng)一整合到util.js文件中了。
(不重要的JS都放到頁(yè)面最底部了)
當(dāng)然,其他網(wǎng)站也需要這樣做:把不重要的JS通通放到頁(yè)面最底部。
方法二:合并JS文件
合并JS,也就是減少HTTP請(qǐng)求,少給服務(wù)器請(qǐng)求一次就加快一點(diǎn)速度,而合并兩個(gè)原本獨(dú)立的JS就需要點(diǎn)技術(shù)了,但這難不倒我們,告訴大家一個(gè)最簡(jiǎn)單的方法:
不管三七二十一,先把A文件直接粘貼到B文件中,合并后刪除網(wǎng)頁(yè)中的A文件,如果網(wǎng)頁(yè)運(yùn)行正常,就OK;如果一些特效失效,那就還原,換C文件合并??倳?huì)有兩個(gè)不沖突的JS文件的。
例如我博客上的百度廣告管家,有6個(gè)廣告位,默認(rèn)情況是要進(jìn)行6次HTTP請(qǐng)求的,因?yàn)槭堑谌絁S,一次請(qǐng)求最快要花234ms,而6次請(qǐng)求就就需要花2秒,也就是說(shuō)因?yàn)檫@個(gè)廣告管家打開(kāi)網(wǎng)頁(yè)就要額外增加2秒。
(第二段JS就是把6個(gè)請(qǐng)求變成了1個(gè))
按照官方教程把JS合并后,6個(gè)廣告位的廣告請(qǐng)求合并為1次請(qǐng)求,大幅降低js請(qǐng)求次數(shù),有效減少頁(yè)面渲染被阻塞的情況,提升廣告加載速度。
方法三:給JS文件減肥
咱不討論什么三目運(yùn)算符、減少對(duì)象查找、如何讓JS簡(jiǎn)潔,咱就用“JS減肥工具”。通常這類工具會(huì)把JS文件中幾百行的代碼壓縮成一行,使體積變小。推薦工具:http://javascriptcompressor.com/ 或軟件版本(容錯(cuò)效果好)
因?yàn)榭招械葐?wèn)題,有時(shí)候使用這類工具會(huì)使JS功能失效,而最簡(jiǎn)單的辦法是用Dreamweaver,把壓縮后的JS放入DW中,DW會(huì)自動(dòng)提示你那里有誤,把錯(cuò)誤的地方另起一行,或還原回去即可。
最后再給個(gè)網(wǎng)友的現(xiàn)身說(shuō)法吧:
當(dāng)你的站點(diǎn)隨著時(shí)間的推移慢慢地做大的時(shí)候,你就會(huì)發(fā)現(xiàn)很多問(wèn)題出來(lái)的,其中一個(gè)就是越來(lái)越臃腫龐大,因此運(yùn)行的速度也就會(huì)慢了下來(lái)。優(yōu)化,盡力去優(yōu)化站點(diǎn),就變得非常重要了。
這些方法都通俗易懂,希望對(duì)大家有用!
相關(guān)文章
javascript中的self和this用法小結(jié)
本篇文章主要是對(duì)javascript中的self和this用法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-02-02JavaScript中輸出信息的方法(信息確認(rèn)框-提示輸入框-文檔流輸出)
這篇文章主要介紹了JavaScript中輸出信息的方法(信息確認(rèn)框-提示輸入框-文檔流輸出)的相關(guān)資料,需要的朋友可以參考下2016-06-06JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)測(cè)速的方法詳解
在我們的日常生活中離不開(kāi)網(wǎng)絡(luò),而網(wǎng)絡(luò)的快慢直接決定了用戶的產(chǎn)品使用體驗(yàn)。本文就來(lái)帶大家了解如何用JavaScript實(shí)現(xiàn)網(wǎng)絡(luò)測(cè)速,需要的可以參考一下2023-01-01詳解 javascript對(duì)象創(chuàng)建模式
這篇文章主要介紹了詳解 javascript對(duì)象創(chuàng)建模式的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)JavaScript的相關(guān)知識(shí)。感興趣的朋友可以了解下2020-10-10JavaScript中子對(duì)象訪問(wèn)父對(duì)象的方式詳解
js中雖然沒(méi)有傳統(tǒng)面向?qū)ο蟮木幊陶Z(yǔ)言里子類訪問(wèn)父類的特殊語(yǔ)法,但是我們可以根據(jù)需要造一個(gè),接下來(lái)本文給大家分享在JavaScript中子對(duì)象訪問(wèn)父對(duì)象的方式,需要的朋友可以參考下2016-09-09輸入框點(diǎn)擊時(shí)邊框變色效果的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇輸入框點(diǎn)擊時(shí)邊框變色效果的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦2016-12-12