2014-10-07 43 views
0

所以基本上我有一個經典的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

回答

2

你需要儘量減少文字去的頁面數量,而且,說實話,在下拉列表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

感謝您的示例 - '<'附近語法不正確。線113(SQL語句) 集cnnSimple =的Server.CreateObject( 「ADODB.Connection」) cnnSimple.Open 「提供者= SQLOLEDB.1;用戶ID =;初始目錄=;數據源=」 \t \t昏暗sql,rs,str sql =「SELECT」&_ 「'' 「&_ 」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

相關問題