東郡網(wǎng)絡建站時數(shù)據(jù)存儲
發(fā)布者:東郡網(wǎng)絡 時間:2015-06-19 00:00:00一般腳本中分別在字面量值、變量、數(shù)組元素和對象屬性這4種地方存于數(shù)據(jù)。讀取數(shù)據(jù)總會帶來性能開銷,而開銷大小取決于數(shù)據(jù)存貯在這4中位置中的哪一種。
在大多數(shù)瀏覽器中,從字面量中讀取值和從局部變量中讀取值的開銷差異很小,以至于可以忽略不計;你可任意地混合使用字面量和局部變量,而無需擔心性能問題。真正的差異在于從數(shù)組或?qū)ο笾凶x取數(shù)據(jù)。存取這些數(shù)據(jù)結(jié)構(gòu)中某個值,需要通過索引(對干數(shù)組)或?qū)傩灾?對于對象)來查詢數(shù)據(jù)存儲的位置。
十堰網(wǎng)站建設技術人員為了測試數(shù)據(jù)存取時間對所在位置的依賴,創(chuàng)建了一個從備種位置讀取200 000次數(shù)值的實驗。東郡網(wǎng)絡技術人員在多個瀏覽器上做這個實驗,結(jié)果剛好一分為二:Internet Explorei、Opera和Firefox 3存取數(shù)組元素比對象屬性快:而chrome、Safati、Firelbx 2和Firefox 3.1+存取對象屬性比數(shù)組元素快.如下圖
從測試結(jié)果中可以得出一個重要啟示:始終將那些需要繁瑣存取的值存儲到局部變量中。請看下面代碼:
這段代碼多次讀取data.count的值。乍一看指讀取了兩次;一次在if語句中,一次在for循環(huán)中。然而實際讀取data.count的次數(shù)應該是data.count的值加1,因為每次進入循環(huán)時都會執(zhí)行控制語句(i〈data.count)。如果將值存儲到局部變量中,然后從局部變量中存取,函數(shù)將運行得更快:
改寫后的函數(shù)在執(zhí)行過程中讀取data.count僅有一次,這是因為這個函數(shù)一開始就把data.count存儲到局部變量中。這樣函數(shù)其他位置就可以直接使用局部變量count,從而減少讀取對象屬性值的次數(shù)。由于減少了查找對象屬性的次數(shù),函數(shù)的執(zhí)行效率將比志氣啊你的更高。
隨著數(shù)據(jù)結(jié)構(gòu)深度的增加,它對數(shù)據(jù)存取速度的影響也跟著邊打。例如存取data.count比data.item.count快,存取data.item.count比data.item.subitem.count快。在處理屬性是,點符號(.)的使用(用于查找屬性)次數(shù)直接影響存取該屬性的總耗時。下圖展示了個瀏覽器中屬性深度與數(shù)據(jù)存取時間的關系。這個測試只數(shù)據(jù)存取實驗的一部分。
十堰網(wǎng)站建設技術人員在數(shù)據(jù)存取時,將函數(shù)中使用超過一次的對象屬性或數(shù)組元素存儲為局部變量是一種好方法。
在處理HTMLCollection對象時用局部變量特別重要。實際上每次存取HTMLCollection對象的屬性,都會對DOM文檔進行動態(tài)查詢。例如:
這段代碼的第一行創(chuàng)建了一個查詢來獲取頁面中所有的〈div〉元素,并將查詢結(jié)果存儲到divs中。每次通過屬性名或索引存取divs的屬性時,DOM實際上重復執(zhí)行了一次對頁面上多有〈div〉元素的查詢;在這段代碼中,每次讀取divs.length或divs[i]都會對頁面查詢一次。一般說來,查找這些屬性比查找飛DOM對象屬性或數(shù)組元素需要更多的時間。因此重要的是:盡可能把這類值存儲在局部變量中,以避免HTMLCollection兌現(xiàn)引發(fā)的重新查詢。例如:
上述將HTMLCollection對象divs的長度存儲到了局部變量中,這樣就減少了直接存取改兌現(xiàn)的次數(shù)。上一個版本的代碼中,在每次循環(huán)中要讀取divs兩次:一次是銅鼓哦指定位置檢索對象,另一次是檢測長度。新版本你的代碼省掉了每次訓話你都要檢測對象長度的運算。
本信息來源于:東郡網(wǎng)絡
-
2020| 東郡網(wǎng)絡中秋、國慶放假通知
2020-09-30 -
開放的互聯(lián)網(wǎng)什么最重要——信任
2020-09-05 -
網(wǎng)站設計中如何逐塊實現(xiàn)網(wǎng)站布局?
2020-07-14 -
5G標準走向了各行各業(yè),將催生出新的數(shù)字生態(tài)產(chǎn)
2020-07-08 -
建黨99周年|永遠跟黨走 奮斗新時代
2020-07-02 -
睿志集團|十堰東郡網(wǎng)絡放假通知
2020-06-23 -
企業(yè)復工復產(chǎn)建議你安排做這幾點
2020-03-20 -
最新消息!十堰東郡網(wǎng)絡今天終于復工啦!
2020-03-18 -
2020年春節(jié)放假通知
2020-01-20 -
十堰東郡網(wǎng)絡中秋節(jié)放假通知
2019-09-12