[英]Javascript and CSS file compression techniques with some Third Party Tools
[英]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個元素的循環在性能方面的巨大改進,但是某些瀏覽器將通過遍歷數組而不是NodeList
或HTMLCollection
來獲得巨大的速度提升。在實現DOM級別1的某些瀏覽器中會調用它。
因此,要回答您的問題,您可以將對象等“緩存”在數組中,這樣可以加快循環的速度,以便將來進行迭代。
請注意,您需要保持此數組為最新,因為它不像DOM那樣“活躍”。
在jquery中,它看起來像這樣:
var $menus = $('select');
$.each($menus, function(index, menu) {
// Do whatever you want to the menu here
};
我建議采用另一種方法-將選項保存在具有逗號分隔值的隱藏字段中,並在頁面加載時通過解析分隔值來設置控件的值。
我認為您已經比某些答案描述的要有效得多。 請記住,你不是不斷通過循環文件,你通過你的緩存循環NodeList
的DropDowns
。 如果要更改這些元素中的每個元素,那么不可避免地需要遍歷它們以分別更改它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.