簡體   English   中英

Javascript緩存工具和技術

[英]Javascript caching tools and techniques

我有一個要遍歷頁面上所有DropDown(選擇)控件的位置。 我使用以下方法來選擇所有DropDown控件:

var DropDowns = document.getElementByTagName('select');

我遍歷這些DropDown,以編程方式設置幾個控件的選項:

for (i=0; i<= DropDowns.Length; i++)
{
    var CurrentControl = DropDowns[i];
    CurrentControl.options[CurrentControl.selectedIndex].value = 1;
}

是否有任何支持緩存的Javascript框架? 我想緩存所有DropDown控件名稱,並通過緩存的名稱循環,而不是直接通過Document對象循環。

有什么技巧可以提高循環性能?

我認為您不會看到僅循環訪問30至40個元素的循環在性能方面的巨大改進,但是某些瀏覽器將通過遍歷數組而不是NodeListHTMLCollection來獲得巨大的速度提升。在實現DOM級別1的某些瀏覽器中會調用它。

因此,要回答您的問題,您可以將對象等“緩存”在數組中,這樣可以加快循環的速度,以便將來進行迭代。

請注意,您需要保持此數組為最新,因為它不像DOM那樣“活躍”。

在jquery中,它看起來像這樣:

var $menus = $('select');
$.each($menus, function(index, menu) {
    // Do whatever you want to the menu here
};

我建議采用另一種方法-將選項保存在具有逗號分隔值的隱藏字段中,並在頁面加載時通過解析分隔值來設置控件的值。

我認為您已經比某些答案描述的要有效得多。 請記住,你不是不斷通過循環文件,你通過你的緩存循環NodeListDropDowns 如果要更改這些元素中的每個元素,那么不可避免地需要遍歷它們以分別更改它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM