对于我正在进行的项目,页面上有一些富文本编辑框,数量各不相同,但可以变得非常大(50个问题/答案集,每个都有8个文本框)。
最初这些是接受HTML的纯文本框,但是由于使用它的终端客户端不能流利使用HTML,我们改用了使用richtext编辑器,因此使用javascript richtext转换原件插件(NicEdit)。
由于这些输入框的数量可变,我使用的是jQuery选择器:
$("textarea").each(function(index) {
var id = this.id;
myNicEditor.addInstance(this);
$("#nic"+id).attr('contenteditable','false');
});
但是,当编辑总数超过200时,我开始收到脚本超时警告。在400我必须点击“继续”两次才能完成。
我如何重组此功能以防止超时?
答案 0 :(得分:0)
网页上的400个富文本编辑器必须使用大量资源。我认为你最好的选择是不要试图将所有这些放在一个页面上。尝试重新组织您的应用程序 - 可能会将其分解为较小的页面,或在需要时根据需要加载页面的子部分。
或者你可以按原样保留textareas,然后根据需要一次只加载一个富编辑器。
答案 1 :(得分:0)
jQuery在选择器中做了很多事情,但找到的元素没有包装在jQuery对象中。 200不是那么大,但无论如何,你可以做两件事:
var els = document.getElementsByTagName("textarea")
var i = 0
var func = function() {
var el = els[i]
myNicEditor.addInstance(el);
$("#nic"+el.id).attr('contenteditable','false');
i++
setTimeout(func,0)
}
func()