缓慢选择在Internet Explorer中显示大量项目的选项 - 经典ASP

缓慢选择在Internet Explorer中显示大量项目的选项 - 经典ASP

问题描述:

所以基本上我有一个经典的ASP网页。我有一个表格下拉框,里面填充了数据库中的帐户代码(其中大约有4000个)。 在Chrome中呈现很好。 在Internet Explorer中,使用填充数据库字段呈现下拉框的过程非常缓慢。缓慢选择在Internet Explorer中显示大量项目的选项 - 经典ASP

我已经做了一些研究,并认为问题可能是每次循环遍历记录集,因此将代码转换为Getrows,但它仍然是相同的。我也尝试列出选项而不是选项值。它会呈现,它只是缓慢,这怎么能更快?我使用Internet Explorer 11

<select name="account1" id="account1"> 

<% If no_rows Then 
Else  

For X = 0 to Ubound(TheArray,2)%> 
<option value="<%response.write(TheArray(arraykeycode,x))%>"><%response.write(TheArray (arraykeycode,x))%></option> 
next 
end if%> 
      </select> 
+3

你检查,如果你,如果你有同样的问题用相同数量的选项值提供html页面?如果是你,你可以消除ASP作为问题根源 – schudel 2014-10-07 08:22:54

+0

刚才检查,它的速度更快撕心裂肺的HTML单独 – Emma 2014-10-07 09:11:14

+0

@Emma您创建了一个带有'''标记是糟糕的开发,您应该考虑使用JQuery AutoComplete或类似的机制来过滤列表而不牺牲ui的响应能力。 – Lankymart 2014-10-07 09:22:16

你需要尽量减少文字去的页面数量,而且,说实话,在下拉列表4000项是发育不良。尝试通过筛选来限制下拉列表中的值(例如,通过另一个下拉列表)。

也许你最好的选择是使用GetString函数来渲染字符串。 RecordSet对象的此方法类似于GetRows,不同之处在于您可以在行中的每个元素与字符串的开始和结尾之间指定填充符。 Have a look here的澄清。

- 编辑 -

只是为了拿这个职位的舞台。此外,这里有一个小例子:

Dim sql, rs, str 
sql = _ 
    "SELECT " & _ 
     "'<option value=""' + CAST([id] AS VARCHAR) + '"">' + " & _ 
      "[description] + '</option>' " & _ 
    "FROM " & _ 
     "myLookupList " 
set rsData = Server.CreateObject("ADODB.RecordSet") 
rs.Open sqlString, Application("conn"), 0, 1, 1 
str = rs.GetString() 
... 
... 
<select id="myLookup"> 
    <%= str %> 
</select> 
+0

感谢您的示例 - ' +”&_ “[keycode] +'' “&_ ”FROM“&_ ”Customer“ set rs = Server.CreateObject(”ADODB.RecordSet“) rs.Open sql,cnnSimple,0,1,1 – Emma 2014-10-07 09:13:23

+2

啊!是的 - 在''''行中'SELECT'语句中遗漏了一个撇号。

+0

非常感谢,页面时间从4.34秒变为1.61秒。 – Emma 2014-10-07 09:40:46