我有问题。当我触发此代码时:
function addItem(){
var select = document.getElementById("2");
select.options.length = 0;;
alert("Please wait...");
for (var i = 0; i < array.length; i++) {
select.options[select.options.length] = new Option(array[i]);
}
alert("Images loaded!");
}
在Internet Explorer 10中(在Windows 8上),响应速度非常慢。阵列中平均有35000个项目,但Chrome和Firefox没有这个问题......我能做些什么来让IE更顺畅?因为这是一个常见的浏览器...
答案 0 :(得分:6)
除了愚蠢的物品数量外,请试试这个
请注意,IE不允许我们更改select的innerHTML,所以我更改了select必须存在的容器的innerHTML才能使用
function addItem(){
var select = document.getElementById("2"); // Why a numeric ID?
var parent = select.parentNode;
parent.innerHTML="Please wait";
var html='<select id="2" multiple="multiple">';
for (var i=0,n=array.length, i<n; i++) {
html += '<option value="'+array[i]+'">'+array[i]+'</option>';
}
html += '</select>'
parent.innerHTML=html;
alert("Images loaded!");
}
或者查看createDocumentFragment和appendChild