[英]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.