亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

javascript 性能優(yōu)化

sean / 2715人閱讀

摘要:盡量減少和對象和瀏覽器對象的交互。這能提高的操作的速度,從而提高性能。對的操作批量進(jìn)行對樣式的更改最后通過增加和刪除類來進(jìn)行。因?yàn)槊看尾僮骱驮氐臉邮礁臑g覽器都會(huì)重新渲染對性能造成影響。語句在編譯的時(shí)候更容易被優(yōu)化。會(huì)導(dǎo)致內(nèi)存泄漏。

1. 盡量減少和DOM對象和瀏覽器對象的交互。 2. 選擇元素的時(shí)候盡量通過ID選擇器去選取元素document.getElement("id"); 3. 避免每次使用browser objects 方法時(shí)都遍歷原型??梢杂靡粋€(gè)變量存放這些方法。如下:
var slice = [].slice,
    split = "".split;
4.簡化你的html,使你的html更加簡潔,刪除那些不必要的div,span 等標(biāo)簽。這能提高javascript的dom操作的速度,從而提高性能。如下:yahoo34條中的一條,減少dom元素。
  

Reduce the Number of DOM Elements. A complex page means more bytes to download and it also means slower DOM access in JavaScript. It makes a difference if you loop through 500 or 5000 DOM elements on the page when you want to add an event handler for example.

document.getElementsByTagName("*").length獲取頁面中dom元素的數(shù)量。 5.對dom的操作批量進(jìn)行,對樣式的更改最后通過增加和刪除類來進(jìn)行。因?yàn)槊看蝑om操作和元素的樣式更改瀏覽器都會(huì)重新渲染,對性能造成影響。
var ul = document.getElementById("id"),
    fragment = document.createDocumentFragment(),
    data = ["text1","text2","text3"],
    li;
for(var i = 0,len = data.length; i < len; i++) {
    li = document.createElment("li");
    li.appendChild(document.createTextNode(data[i]));
    fragment.appendChild(li);
}
ul.appendChild(fragment);
6. 減少對js庫的依賴 7. 合并js壓縮js 8. 僅僅加載你需要的模塊,可以使用依賴管理如Require.js 9. 在IE上使用Array.prototype.join()來代替字符串相加的方法來連接字符串。
  

Joining strings using the plus sign (ie var ab = "a" + "b";) creates performance issues in IE when used within an iteration. This is because, like Java and C#, JavaScript uses unmutable strings. Basically, when you concatenate two strings, a third string is constructed for gathering the results with its own object instantiation logic and memory allocation. While other browsers have various compilation tricks around this, IE is particularly bad at it.

10.充分利用引用類型,對于函數(shù)傳參來說,傳引用與傳基本類型的值來說,引用的開銷更小。 11.縮短作用域鏈 12.利用好this變量,通過使用call,apply
var Person = Object.create({
  init: function(name) {
     this.name = name;
  },
  do: function(callback) {
     callback.apply(this);
  }
});
var john = new Person("john");
john.do(function() {
    alert(this.name); // "john" gets alerted because we rewired "this".
});
13. 使用switch代替if/else 語句。switch語句在編譯的時(shí)候更容易被優(yōu)化。 14. 變量聲明帶上var 慎用全局變量 15. 慎用閉包,閉包如果形成循環(huán)引用的話。會(huì)導(dǎo)致內(nèi)存泄漏。 16. 使用for 代替 for in 遍歷數(shù)組

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78034.html

相關(guān)文章

  • 圖說 WebAssembly(五):高性能原因

    摘要:本文是圖說系列文章的第五篇。這樣的話,使用的開發(fā)者也不需要做任何適配,但是它們卻能獲得更高性能。該圖并不是用來準(zhǔn)確的衡量其性能的。運(yùn)行編寫出高性能的代碼是可能的。這種清理工作由引擎自動(dòng)進(jìn)行,稱為垃圾回收。 本文是圖說 WebAssembly 系列文章的第五篇。如果您還未閱讀之前的文章,建議您從第一篇入手。 在上一篇文章中,我們說到了使用 WebAssembly 和 JavaScript...

    seal_de 評(píng)論0 收藏0
  • 前端性能優(yōu)化之--頁面渲染優(yōu)化全面解析

    摘要:下面我們撇開網(wǎng)絡(luò)方面的優(yōu)化,只分析靜態(tài)資源方面的優(yōu)化。不過,也會(huì)阻止的構(gòu)建和延緩網(wǎng)頁渲染。未優(yōu)化正常加載優(yōu)化后異步加載根據(jù)上面的分析,我們可以清楚的認(rèn)識(shí)到,非必要優(yōu)先加載的,選擇異步加載是最優(yōu)選擇。 為什么做優(yōu)化 經(jīng)典問題:白屏?xí)r間過長,用戶體驗(yàn)差產(chǎn)生的原因:網(wǎng)絡(luò)問題、關(guān)鍵渲染路徑(CRP)問題 怎么做優(yōu)化 如何做好優(yōu)化呢,網(wǎng)上隨便一搜,就有很多優(yōu)化總結(jié),無非就是網(wǎng)絡(luò)優(yōu)化、靜態(tài)資源(h...

    MadPecker 評(píng)論0 收藏0
  • 前端性能優(yōu)化之--頁面渲染優(yōu)化全面解析

    摘要:下面我們撇開網(wǎng)絡(luò)方面的優(yōu)化,只分析靜態(tài)資源方面的優(yōu)化。不過,也會(huì)阻止的構(gòu)建和延緩網(wǎng)頁渲染。未優(yōu)化正常加載優(yōu)化后異步加載根據(jù)上面的分析,我們可以清楚的認(rèn)識(shí)到,非必要優(yōu)先加載的,選擇異步加載是最優(yōu)選擇。 為什么做優(yōu)化 經(jīng)典問題:白屏?xí)r間過長,用戶體驗(yàn)差產(chǎn)生的原因:網(wǎng)絡(luò)問題、關(guān)鍵渲染路徑(CRP)問題 怎么做優(yōu)化 如何做好優(yōu)化呢,網(wǎng)上隨便一搜,就有很多優(yōu)化總結(jié),無非就是網(wǎng)絡(luò)優(yōu)化、靜態(tài)資源(h...

    gghyoo 評(píng)論0 收藏0
  • 前端性能優(yōu)化之--頁面渲染優(yōu)化全面解析

    摘要:下面我們撇開網(wǎng)絡(luò)方面的優(yōu)化,只分析靜態(tài)資源方面的優(yōu)化。不過,也會(huì)阻止的構(gòu)建和延緩網(wǎng)頁渲染。未優(yōu)化正常加載優(yōu)化后異步加載根據(jù)上面的分析,我們可以清楚的認(rèn)識(shí)到,非必要優(yōu)先加載的,選擇異步加載是最優(yōu)選擇。 為什么做優(yōu)化 經(jīng)典問題:白屏?xí)r間過長,用戶體驗(yàn)差產(chǎn)生的原因:網(wǎng)絡(luò)問題、關(guān)鍵渲染路徑(CRP)問題 怎么做優(yōu)化 如何做好優(yōu)化呢,網(wǎng)上隨便一搜,就有很多優(yōu)化總結(jié),無非就是網(wǎng)絡(luò)優(yōu)化、靜態(tài)資源(h...

    gaomysion 評(píng)論0 收藏0
  • 個(gè)人常用JavaScript及React常用優(yōu)化總結(jié)

    摘要:插件性能優(yōu)化及個(gè)人常用優(yōu)化方法經(jīng)常會(huì)觸發(fā)視覺變化。作用域鏈指的是當(dāng)前作用于下可用變量的集合,它在各種主流瀏覽器中至少包含兩個(gè)部分局部變量的集合和全局變量的集合。在考慮優(yōu)化時(shí),數(shù)值和變量的性能差不多,并且速度顯著優(yōu)于對象屬性和數(shù)組元素。 JavaScript 插件性能優(yōu)化及個(gè)人react常用優(yōu)化方法 JavaScript 經(jīng)常會(huì)觸發(fā)視覺變化。有時(shí)是直接通過樣式操作,有時(shí)是會(huì)產(chǎn)生視覺變化...

    yuanxin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<