14 javascript ajax performance internet-explorer html-select
我在表单上有两个<select>框.选择第一个<select>框中的项目将决定第二个<select>中应显示的内容(使用Ajax http_request).
在某些情况下,第二个选择中可能有500个(猜测)项目,在IE中更新需要5-10秒.Firefox似乎完美无缺.
我想知道是否有更快的方法来实现这一目标.当前服务器创建一个字符串将其传递给客户端,然后将其分解并通过创建选项元素将每个项目添加到选择,然后将其添加到<select>.
我确实尝试在服务器上创建整个选择项作为字符串并将其添加到表单但由于某种原因它在Firefox中不起作用(错过了什么?)
谢谢
Cre*_*esh 19
即使对于IE,500个元素也不是很多.你必须做其他事情才能造成滞后.
我只是在IE6,IE7,FF2和FF3中尝试了500多个选项,并且几乎都是即时的.我用过这段代码:
var data = [
{ text: 'foo', value: 'bar' },
// ...
{ text: 'foo', value: 'bar' }
];
var select = document.getElementsByTagName('select')[0];
select.options.length = 0; // clear out existing items
for(var i=0; i < data.length; i++) {
var d = data[i];
select.options.add(new Option(d.text, i))
}
Run Code Online (Sandbox Code Playgroud)
我建议分析一下获取数据并填充下拉列表的代码.还有其他东西可能占用时间.例如,检查"分解"从服务器返回的字符串值的代码是否清晰(听起来就像你在那里进行自己的自定义解析).
| 归档时间: |
|
| 查看次数: |
43643 次 |
| 最近记录: |