青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

思勤無邪

上學時,因我年齡最小,個頭也最小,上課時,就像大猩猩堆里的猴一般。如今,這猴偶爾也把最近的一些情況寫在這里。

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  132 Posts :: 1 Stories :: 178 Comments :: 0 Trackbacks

公告

     吾日常三省吾身,曰思、曰勤、曰無邪。

積分與排名

  • 積分 - 186428
  • 排名 - 140

最新隨筆

最新評論

閱讀排行榜

評論排行榜


    4.1 JScript性能優化的基本原則
    1. 盡可能少地減少執行次數。畢竟對解釋語言來說,每一個執行步驟,都需要和解釋引擎做一次交互。
    2. 盡可能使用語言內置的功能,比如串鏈接。
    3. 盡可能使用系統提供的API來進行優化。因為這些API是編譯好的二進制代碼,執行效率很高。
    4. 書寫最正確的代碼。容錯功能是要付出性能代價的。

    4.2 JScript語言本身的優化
    4.2.1 變量
    1. 盡量使用局部變量。
    因為全局變量其實是全局對象的成員,而局部變量在棧上定義,優先查找,性能相對于全局變量要高。

    2. 盡量在一個語句中做定義變量和賦值。

    3. 省略不必要的變量定義。
    如果變量的定義可以被一個常量替代,就直接使用常量。

    4. 使用Object語法對對象賦值。
    Object的賦值語法在操作復雜對象時效率更高。
    例如,可以將下面的代碼:

car = new Object();
car.make 
= "Honda";
car.model 
= "Civic";
car.transmission 
= "manual";
car.miles 
= 100000;
car.condition 
= "needs work";

    替換成:

car = {
    make: 
"Honda",
    model: 
"Civic",
    transmission: 
"manual",
    miles: 
100000,
    condition: 
"needs work"
}


    4.2.2 對象緩存
   
1. 緩存對象查找的中間結果。
    因為JavaScript的解釋性,所以a.b.c.d.e,需要進行至少4次查詢操作,先檢查a再檢查a中的b,再檢查b中的c,如此往下。所以如果這樣的表達式重復出現,只要可能,應該盡量少出現這樣的表達式,可以利用局部變量,把它放入一個臨時的地方進行查詢。

    2. 緩存創建時間較長的對象。
    自定義高級對象和Date、RegExp對象在構造時都會消耗大量時間。如果可以復用,應采用緩存的方式。

    4.2.3 字符串操作
    1. 使用"+=" 追加字符串,使用"+"來連接字符串。
    如果是追加字符串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr。
    如果要連接多個字符串,應該使用"+",如:
    s+=a;
    s+=b;
    s+=c;
    應該寫成
    s+=a + b + c;

    2. 連接大量的字符串,應使用Array的join方法。
    如果是收集字符串,最好使用JavaScript數組緩存,最后使用join方法連接起來,如下:

var buf = new Array();
for (var i = 0; i < 100; i++)
{
    buf.push(i.toString());
}


var all = buf.join("");


    4.2.4 類型轉換
   
1. 使用Math.floor()或者Math.round()將浮點數轉換成整型。
    浮點數轉換成整型,這個更容易出錯,很多人喜歡使用parseInt(),其實parseInt()是用于將字符串轉換成數字,而不是浮點數和整型之間的轉換,我們應該使用Math.floor()或者Math.round()。
對象查找中的問題不一樣,Math是內部對象,所以Math.floor()其實并沒有多少查詢方法和調用的時間,速度是最快的。

    2. 自定義的對象,推薦定義和使用toString()方法來進行類型轉換。
    對于自定義的對象,如果定義了toString()方法來進行類型轉換的話,推薦顯式調用toString()。因為內部的操作在嘗試所有可能性之后,會嘗試對象的toString()方法嘗試能否轉化為String,所以直接調用這個方法效率會更高。

    4.2.5 循環的優化
   
1. 盡可能少使用for(in)循環。
    在JavaScript中,我們可以使用for(;;),while(),for(in)三種循環,事實上,這三種循環中for(in)的效率極差,因為他需要查詢散列鍵,只要可以就應該盡量少用。

    2. 預先計算collection的length。
    如:將
     for (var i = 0; i < collection.length; i++)
    替換成:
     for (var i = 0, len = collection.length; i < len; i++)
    效果會更好,尤其是在大循環中。

    3. 盡量減少循環內的操作。
    循環內的每個操作,都會被放大為循環次數的倍數。所以,大循環內微小的改進,在性能的整體提升上都是可觀的。

    4. 使用循環替代遞歸。
相比循環,遞歸的效率更差一些。遞歸的優點是在形式上更自然一些。所以,在不影響代碼的維護性的前提下,用循環替代遞歸。

    4.2.6 其它方面
    1. 盡量使用語言內置的語法。
    "var arr = […];"和"var arr = new Array(…);"是等效的,但是前者的效能優于后者。同樣,"var foo = {};"的方式也比"var foo = new Object();"快;"var reg = /../;"要比"var reg=new RegExp()"快。

    2. 盡量不要使用eval。
使用eval,相當于在運行時再次調用解釋引擎,對傳入的內容解釋運行,需要消耗大量時間。

    3. 使用prototype代替closure。
    使用closure在性能和內存消耗上都是不利的。如果closure使用量過大,這就會成為一個問題。所以,盡量將:
     this.methodFoo = function()
替換成:
     MyClass.protoype.methodFoo = function()
和closure存在于對象實例之中不同,prototype存在于類中,被該類的所有的對象實例共享。

    4. 避免使用with語句。
    With語句臨時擴展對象查找的范圍,節省了文字的錄入時間,但付出了更多的執行時間。因為每個給出的名稱都要在全局范圍查找。所以,可以將下面的代碼:

with (document.formname)
{
    field1.value 
= "one";
    field2.value 
= "two";
}

變更為:

var form = document.formname;
form.field1.value 
= "one";
form.field2.value 
= "two";


    4.3 DOM相關
    4.3.1 創建DOM節點
    相比較通過document.write來給頁面生成內容,找一個容器元素(比如指定一個div或者span)并設置他們的innerHTML效率更高。
    而設置innerHTML的方式比通過createElement方法創建節點的效率更高。事實上,設置元素的innerHTML是創建節點效率最高的一種方式。
    如果必須使用createElement方法,而如果文檔中存在現成的樣板節點,應該是用cloneNode()方法。因為使用createElement()方法之后,你需要設置多次元素的屬性,使用cloneNode()則可以減少屬性的設置次數。同樣,如果需要創建很多元素,應該先準備一個樣板節點。

    4.3.2 離線操作大型的DOM樹
    在添加一個復雜的DOM樹時,可以先構造,構造結束后再將其添加到DOM數的適當節點。這能夠節省界面刷新的時間。

    同樣,在準備編輯一個復雜的樹時,可以先將樹從DOM樹上刪除,等編輯結束后再添加回來。
 
    4.3.3 對象查詢
   
使用[""]查詢要比.item()更快。調用.item()增加了一次查詢和函數的調用。

    4.3.4 定時器
   
如果針對的是不斷運行的代碼,不應該使用setTimeout,而應該用setInterval。setTimeout每次要重新設置一個定時器。

    4.4 其他
    1. 盡量減小文件尺寸。
    將JScript文件中無關的空行、空格、注釋去掉,有助于減小JS文件的尺寸,提高下載的時間。(可以通過工具來支持代碼發布)
    2. 盡量不要在同一個Page內同時引用JScript和VBScript引擎
    3. 將Page內的JScript移入到單獨的JS文件中。
    4. 將Page內的JScript放置在Page的最下面,有助于提高頁面的響應速度。
    5. 利用cache,減少JScript文件的下載次數
    6. 在HTML內書寫JScript文件的URL時,注意統一大小寫。這樣可以利用前面URL緩存的文件。
    7. 推薦使用JScript Lint檢查Javascript代碼。畢竟,對JScript引擎來說,最容易理解的JScript代碼,執行的效率也就最高。

posted on 2007-04-07 13:17 思勤無邪 閱讀(1163) 評論(0)  編輯 收藏 引用 所屬分類: .NET
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合精品四区| 亚洲一区二区成人| 欧美成人首页| 久久亚洲视频| 看片网站欧美日韩| 欧美二区在线看| 欧美色综合天天久久综合精品| 欧美日韩视频不卡| 国产女主播在线一区二区| 国产亚洲精品福利| 亚洲高清视频在线| 亚洲无玛一区| 久久久久www| 亚洲国产精品99久久久久久久久| 蜜桃av综合| 亚洲人成在线影院| 午夜精品久久久久久久白皮肤| 欧美一区国产在线| 欧美精品日韩一本| 国产日韩综合| 夜夜狂射影院欧美极品| 欧美制服丝袜| 亚洲精品免费在线播放| 欧美一级久久久| 欧美激情视频一区二区三区免费| 国产精品黄视频| 亚洲国产精品福利| 欧美在线三级| 亚洲日本中文字幕免费在线不卡| 亚洲欧美国产毛片在线| 欧美成年人网| 国产小视频国产精品| 一区二区三区成人精品| 欧美日韩免费高清一区色橹橹| 国产精品久久久久久久久果冻传媒 | 欧美激情2020午夜免费观看| 日韩视频精品在线观看| 久久精品欧洲| 国产老女人精品毛片久久| 亚洲精品美女在线| 久久午夜视频| 午夜欧美理论片| 国产精品成人一区| 一本在线高清不卡dvd| 欧美国产一区视频在线观看| 欧美亚洲色图校园春色| 国产精品久久久一区二区| 99精品热视频| 亚洲经典在线看| 欧美成人视屏| 亚洲裸体在线观看| 亚洲电影下载| 美女爽到呻吟久久久久| 亚洲第一精品夜夜躁人人躁| 久久久久久久久久久久久久一区 | 日韩午夜精品| 亚洲国产日韩在线| 欧美成人免费播放| 亚洲三级性片| 亚洲激情国产| 欧美chengren| 亚洲精品一区二区三| 亚洲高清av在线| 女同性一区二区三区人了人一| 在线精品国精品国产尤物884a| 久久网站热最新地址| 久久国产精品毛片| **欧美日韩vr在线| 亚洲激情电影中文字幕| 欧美精品在欧美一区二区少妇| 99精品欧美一区二区蜜桃免费| 亚洲国产日韩欧美| 欧美日韩精品一区二区在线播放| av成人免费在线| 中国成人在线视频| 国产欧美日韩精品丝袜高跟鞋| 欧美在线一二三区| 久久久青草婷婷精品综合日韩 | 久久午夜视频| 免费h精品视频在线播放| 亚洲精品欧美在线| 一区二区三区国产在线观看| 国产精品一区免费观看| 亚洲天天影视| 国产精品xxxxx| 久久成人av少妇免费| 久久久精品欧美丰满| 亚洲麻豆视频| 欧美一区二区三区喷汁尤物| 亚洲第一综合天堂另类专| 欧美激情一区二区三区四区| 欧美日韩中文字幕综合视频| 久久爱www久久做| 蜜臀av性久久久久蜜臀aⅴ| 亚洲性夜色噜噜噜7777| 久久精品视频在线免费观看| 亚洲破处大片| 亚洲一区国产视频| 亚洲人在线视频| 亚洲欧美日韩精品一区二区| 亚洲国产日韩在线一区模特| 中文一区二区| 亚洲韩国日本中文字幕| 亚洲一品av免费观看| 亚洲国产精品一区二区久| 亚洲视频免费在线观看| 亚洲精品1区| 欧美中文字幕不卡| 亚洲一区二区在线看| 卡一卡二国产精品| 欧美中文日韩| 欧美久久电影| 欧美激情精品久久久久久黑人| 国产精品一区毛片| 夜夜嗨av色综合久久久综合网| 黑人一区二区| 亚洲欧美日韩在线一区| 亚洲伊人第一页| 欧美日韩高清区| 亚洲成人自拍视频| 狠狠色丁香久久婷婷综合丁香| 一本久久综合亚洲鲁鲁| 亚洲日本理论电影| 久久综合精品一区| 毛片一区二区三区| 黄色成人av| 久久久国产成人精品| 久久精品人人做人人综合 | 欧美亚洲一区在线| 国产精品成av人在线视午夜片| 亚洲国产影院| 亚洲人体1000| 麻豆国产精品777777在线| 久久综合99re88久久爱| 国模精品娜娜一二三区| 亚洲欧美色婷婷| 欧美一区二区精品| 国产欧美精品在线观看| 欧美一区二区观看视频| 久久经典综合| 国产亚洲欧美一区二区| 欧美亚洲综合网| 久久嫩草精品久久久久| 韩国成人理伦片免费播放| 欧美一区二区三区免费视频| 久久久亚洲国产天美传媒修理工| 国产视频一区三区| 欧美91大片| 亚洲国产高清aⅴ视频| 鲁大师影院一区二区三区| 欧美国产日韩免费| 一本大道av伊人久久综合| 国产精品成人免费视频| 亚洲免费一在线| 巨乳诱惑日韩免费av| 亚洲电影激情视频网站| 欧美精品 日韩| 亚洲视频在线观看视频| 久久精品亚洲精品| 亚洲国产欧美在线| 欧美日韩亚洲免费| 亚洲男人第一av网站| 久久久精品tv| 亚洲欧洲日本一区二区三区| 欧美三区免费完整视频在线观看| 在线一区亚洲| 久久亚洲精品网站| 日韩午夜av| 国产一区二区日韩精品欧美精品| 久久青草欧美一区二区三区| 亚洲人成啪啪网站| 欧美一级电影久久| 在线精品亚洲| 欧美午夜精品一区| 久久久久久电影| 亚洲色图在线视频| 免费一级欧美片在线观看| 亚洲视频在线观看视频| 狠狠操狠狠色综合网| 欧美午夜宅男影院在线观看| 久久久久青草大香线综合精品| 亚洲免费观看在线观看| 久久久一区二区三区| 亚洲深夜福利| 亚洲国产精品一区| 国产一区二区三区奇米久涩| 欧美日韩免费高清| 免费人成网站在线观看欧美高清| 亚洲伊人第一页| 亚洲精品美女在线| 久色成人在线| 久久久久高清| 性欧美大战久久久久久久免费观看| 91久久精品国产| 黄色精品免费| 国产欧美丝祙| 国产精品三级久久久久久电影| 欧美不卡视频一区| 久久看片网站| 久久久久九九九|