<address id="dlvht"></address>
    <span id="dlvht"><pre id="dlvht"></pre></span>

      <noframes id="dlvht">

      <address id="dlvht"></address>

        <address id="dlvht"></address>
        <address id="dlvht"></address>

        東郡網絡建站時數據存儲

        發布者:東郡網絡 時間:2015-06-19 00:00:00

        一般腳本中分別在字面量值、變量、數組元素和對象屬性這4種地方存于數據。讀取數據總會帶來性能開銷,而開銷大小取決于數據存貯在這4中位置中的哪一種。

        在大多數瀏覽器中,從字面量中讀取值和從局部變量中讀取值的開銷差異很小,以至于可以忽略不計;你可任意地混合使用字面量和局部變量,而無需擔心性能問題。真正的差異在于從數組或對象中讀取數據。存取這些數據結構中某個值,需要通過索引(對干數組)或屬性值(對于對象)來查詢數據存儲的位置。

        十堰網站建設技術人員為了測試數據存取時間對所在位置的依賴,創建了一個從備種位置讀取200 000次數值的實驗。東郡網絡技術人員在多個瀏覽器上做這個實驗,結果剛好一分為二:Internet Explorei、Opera和Firefox 3存取數組元素比對象屬性快:而chrome、Safati、Firelbx 2和Firefox 3.1+存取對象屬性比數組元素快.如下圖

        從測試結果中可以得出一個重要啟示:始終將那些需要繁瑣存取的值存儲到局部變量中。請看下面代碼:

        這段代碼多次讀取data.count的值。乍一看指讀取了兩次;一次在if語句中,一次在for循環中。然而實際讀取data.count的次數應該是data.count的值加1,因為每次進入循環時都會執行控制語句(i〈data.count)。如果將值存儲到局部變量中,然后從局部變量中存取,函數將運行得更快:

        改寫后的函數在執行過程中讀取data.count僅有一次,這是因為這個函數一開始就把data.count存儲到局部變量中。這樣函數其他位置就可以直接使用局部變量count,從而減少讀取對象屬性值的次數。由于減少了查找對象屬性的次數,函數的執行效率將比志氣啊你的更高。

        隨著數據結構深度的增加,它對數據存取速度的影響也跟著邊打。例如存取data.count比data.item.count快,存取data.item.count比data.item.subitem.count快。在處理屬性是,點符號(.)的使用(用于查找屬性)次數直接影響存取該屬性的總耗時。下圖展示了個瀏覽器中屬性深度與數據存取時間的關系。這個測試只數據存取實驗的一部分。

        十堰網站建設技術人員在數據存取時,將函數中使用超過一次的對象屬性或數組元素存儲為局部變量是一種好方法。

        在處理HTMLCollection對象時用局部變量特別重要。實際上每次存取HTMLCollection對象的屬性,都會對DOM文檔進行動態查詢。例如:

        這段代碼的第一行創建了一個查詢來獲取頁面中所有的〈div〉元素,并將查詢結果存儲到divs中。每次通過屬性名或索引存取divs的屬性時,DOM實際上重復執行了一次對頁面上多有〈div〉元素的查詢;在這段代碼中,每次讀取divs.length或divs[i]都會對頁面查詢一次。一般說來,查找這些屬性比查找飛DOM對象屬性或數組元素需要更多的時間。因此重要的是:盡可能把這類值存儲在局部變量中,以避免HTMLCollection兌現引發的重新查詢。例如:

        上述將HTMLCollection對象divs的長度存儲到了局部變量中,這樣就減少了直接存取改兌現的次數。上一個版本的代碼中,在每次循環中要讀取divs兩次:一次是銅鼓哦指定位置檢索對象,另一次是檢測長度。新版本你的代碼省掉了每次訓話你都要檢測對象長度的運算。

         本信息來源于:東郡網絡

        微信網站建設分享 新浪網站建設分享 微博網站建設分享 空間網站建設分享

        400-8086-755    

        掃描二維碼
        與銷售顧問咨詢

        人妻仑乱A级毛片免费看