jqGrid 或 jQuery 是否具有在字符串中缓存 DOM 更改的功能?
Does jqGrid or jQuery have the functionality of caching DOM changes inside a string
例如,如果我们在 html 中有选择/选项/下拉框。 1) 比 2) 快 jQuery 中的数组大小为 5000。
1)先做一个字符串:
var str = '';
for (var i = 0; i<an_array.length; i++) {
str +='<option value="' + an_array[i] + '">' + an_array[i] + '</option>';
}
jQuery("#my_select").append(str);
2)每次附加:
for (var i = 0; i<an_array.length; i++) {
jQuery("#my_select").append(
jQuery('<option></option>').val(an_array[i]).html(an_array[i])
);
}
我的问题是:jQuery或jqGrid是否有这样的功能,首先制作缓存字符串,然后在完成后将所有内容发布到html上?还是我们已经在jqGrid中使用了这种方式?我问这个问题的原因是,当我有超过 500 列时,jqGrid 似乎真的很慢。这就像在 C 中一样。您可以在每次执行 fprintf 时自动刷新到文件,也可以在完成后手动刷新它。
提前谢谢。
我在 jQuery 文档中多次看到它说,在多次重复相同的 DOM 内容时,应始终使用缓存的对象,因为每次遍历 DOM 需要更多的处理能力。
我会这样编码您的解决方案:-
.HTML
<select id="my_select"/>
JavaScript/jQuery
//an array to use for demonstration
var arr = ["one", "two", "three", "four", "five"];
var $frag = $();
$.each(arr, function () {
$frag = $frag.add($("<option/>").val(this).text(this));
});
$("#my_select").append($frag);
请注意行 var $frag = $();。$() 创建一个空的 jQuery 对象,我在变量名$frag前面加上 $ 前缀只是为了提醒自己它是一个 jQuery 对象而不是文本字符串。
希望能令人满意地回答您的问题。
此致敬意艾伦
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 未捕获错误:元素缓存中id为x的DOM元素与DOM中的元素不同
- jqGrid 或 jQuery 是否具有在字符串中缓存 DOM 更改的功能?
- 是否可以在不将其添加到DOM的情况下预加载和缓存视频文件
- 清除dom缓存
- 使用jquery从DOM中清除缓存
- Mobile Safari是否清理DOM应用程序缓存?何时清理
- 为什么通过缓存变量访问 DOM 更快
- 如何构建不会更改的 DOM 缓存
- 缓存 HTML 字符串或 DOM 元素
- 使用命名空间缓存 DOM 元素
- 确定 JavaScript 中缓存的 DOM 元素的内存使用情况
- 如何在jQuery中缓存DOM变量
- 我的JS代码如何在没有明确缓存DOM元素的情况下访问它们
- 如何保存/缓存dom,以便在点击后退按钮时页面按原样加载
- 添加DOM视图太慢了,需要一种更好的方法来缓存一次视图并重用它供以后使用
- DOM中的项未清除,如何清除缓存
- 说服浏览器缓存被JavaScript修改过的DOM