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

思勤無邪

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

   :: 首頁 :: 聯系 :: 聚合  :: 管理
  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>
            亚洲国产成人精品视频| 亚洲美女色禁图| 亚洲欧美日韩国产综合在线| 亚洲日本欧美日韩高观看| 亚洲特色特黄| 亚洲综合首页| 欧美一区=区| 久久露脸国产精品| 欧美3dxxxxhd| 亚洲精品国产无天堂网2021| 99精品欧美一区二区三区综合在线| 在线视频欧美一区| 久久成人18免费观看| 久久综合五月天婷婷伊人| 男人天堂欧美日韩| 国产精品成人一区二区三区吃奶| 国产精品久久婷婷六月丁香| 国产无一区二区| 亚洲精美视频| 午夜国产精品视频免费体验区| 久久不射电影网| 亚洲高清免费| 亚洲欧美日韩精品一区二区| 久久婷婷麻豆| 99国内精品久久久久久久软件| 99精品国产福利在线观看免费| 亚洲欧美文学| 欧美精品一区二区在线观看| 国产亚洲精品久| 夜夜嗨av一区二区三区四区| 久久久91精品国产| 日韩一级黄色片| 欧美中日韩免费视频| 欧美日韩免费观看一区=区三区| 国产精品视频xxx| 亚洲国产精品免费| 午夜精品久久一牛影视| 亚洲电影免费在线| 久久国产精品亚洲va麻豆| 欧美区日韩区| 亚洲激情在线观看视频免费| 久久青青草综合| 亚洲午夜女主播在线直播| 欧美成人资源| 亚洲福利视频一区二区| 久久久精品tv| 亚洲欧美中文另类| 国产精品成人免费精品自在线观看| 亚洲日产国产精品| 久久久夜精品| 久久精品国产91精品亚洲| 国产精品美腿一区在线看| 一区二区高清视频在线观看| 欧美国产欧美综合| 久久综合给合久久狠狠狠97色69| 国产一区成人| 亚洲欧美视频一区| 激情欧美日韩一区| 国产日韩欧美一区| 亚洲欧美影音先锋| 99日韩精品| 国产精品第三页| 亚洲综合视频网| 亚洲综合精品四区| 国产精品一区在线观看| 亚洲一区免费网站| 亚洲性视频网址| 国产三级欧美三级| 久久亚洲影音av资源网| 久久久久久日产精品| 亚洲黄色av| 亚洲免费观看高清完整版在线观看| 欧美日韩精品久久久| 亚洲欧美日韩电影| 欧美在线播放视频| 亚洲国产精品精华液2区45| 欧美激情1区2区| 欧美精品电影在线| 亚洲高清视频的网址| 久久免费视频在线观看| 久久人人爽国产| av成人免费| 亚洲愉拍自拍另类高清精品| 国产欧美日本在线| 嫩草成人www欧美| 欧美精品在线免费| 亚洲女ⅴideoshd黑人| 欧美一区二区三区精品| 在线观看久久av| 99视频在线精品国自产拍免费观看| 伊人精品视频| 欧美午夜不卡在线观看免费| 亚洲自拍啪啪| 久久免费视频网| 一区二区三区精品视频在线观看| 99re热这里只有精品视频| 国产精一区二区三区| 免费短视频成人日韩| 欧美日韩裸体免费视频| 欧美在线免费观看视频| 免费人成精品欧美精品| 午夜精品福利视频| 欧美成人三级在线| 亚洲欧美日韩高清| 欧美大胆成人| 久久久久成人网| 欧美三级在线视频| 免费在线一区二区| 国产精品一二一区| 亚洲精品欧美精品| 国产精品一区=区| 亚洲精品免费电影| 国产香蕉97碰碰久久人人| 亚洲国产精品va| 韩国欧美一区| 亚洲免费视频网站| 激情综合色综合久久综合| 一区二区三区久久| 久久久水蜜桃av免费网站| 在线日韩欧美| 国产精品影片在线观看| 欧美激情视频一区二区三区不卡| 亚洲欧美日韩国产成人精品影院| 欧美大片专区| 日韩一级大片| av成人免费观看| 久久久久青草大香线综合精品| 久久亚洲影音av资源网| 欧美日韩精品系列| 欧美日韩高清在线观看| 欧美日韩在线三级| 美国十次成人| 国产精品久久久久国产a级| 国产综合自拍| 亚洲国产日韩欧美| 蜜桃伊人久久| 亚洲欧洲日韩女同| 免播放器亚洲| 欧美一区二区三区免费看| 欧美一区国产二区| 亚洲黄网站黄| 久久久免费精品视频| 亚洲黄网站在线观看| 亚洲激情国产| 亚洲在线视频免费观看| 欧美精品xxxxbbbb| 激情欧美一区二区三区| 欧美亚洲综合久久| 麻豆精品精华液| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲一区二区三区午夜| 日韩午夜电影| 欧美日韩一区二区三区在线观看免| 欧美精品久久99| 欧美综合二区| 亚洲欧美日本国产专区一区| 国产精品你懂的在线| 午夜精品视频网站| 亚洲美女中文字幕| 国产精品久久久久99| 亚洲国产精品视频| 亚洲精品国久久99热| 欧美成人激情在线| 99国产精品国产精品久久| 这里是久久伊人| 久久久久在线| 欧美成人精品在线观看| 亚洲美女av网站| 亚洲男人的天堂在线| 亚洲激情精品| 女人色偷偷aa久久天堂| 亚洲夫妻自拍| 亚洲国产精品久久久久秋霞蜜臀| 国产精品v欧美精品∨日韩| 亚洲福利国产| 国内成人自拍视频| 亚洲精品无人区| 在线色欧美三级视频| 亚洲日韩欧美视频| 亚洲黄一区二区三区| 香蕉精品999视频一区二区| 91久久久亚洲精品| 亚洲欧美在线观看| 国产三级欧美三级日产三级99| 久久亚洲私人国产精品va| 免费久久99精品国产自| 嫩草国产精品入口| 亚洲国产1区| 久久成人免费日本黄色| 欧美亚洲一区二区三区| 在线综合视频| 一区免费在线| 永久免费毛片在线播放不卡| 久久久99爱| 亚洲一区二区视频在线观看| 久久精品99国产精品| 久热成人在线视频| 国产精品社区| 久热综合在线亚洲精品| 亚洲高清不卡在线|