我有一個位置使用我們的ASP.NET 4.0 Web應用程序,它運行良好約2年。我出去現場做了升級,發現其中一個頁面只是空白,IE 8完全停止響應。經過調查,我發現一個頁面上的一個組合框有超過8000個項目。該頁面在IE7,IE9,Firefox和Chrome中正常加載。我查看了該Ajax Control Toolkit網站上的文檔,他們說我應該使用Auto Complete Extender,因爲我擁有如此多的記錄。我認爲,在任何瀏覽器中都不起作用只是時間問題。該設施使用IE8,所以我現在讓它們以兼容模式運行;然後我告訴他們開始刪除他們不再需要的舊記錄。不過,我需要開始研究替代品。 Auto Complete Extender的問題在於它不能像組合框那樣工作。有誰知道一個好方法?我需要保持代碼隱藏的DataSource和DataBinding風格。另外,重新設計不是一種選擇。我需要該列表來包含任何特定設施的所有訪問者。AjaxControlToolkit combobox替代大量項目
0
A
回答
2
隨着8000個項目,我會推薦一個控件,這兩個都是填充和過濾按需(不在Page_Load),並沒有堅持所有項目ViewState。
不幸的是,按需填充和過濾會影響DataSource和DataBinding風格。剩下的就是試圖使用控件EnableViewState =「false」並儘量減少頁面大小的可用性,首先是使用壓縮。在IIS中,enable dynamic compression。我認爲這些步驟不會解決性能問題,但您應該先從使用YSlow或其他工具分析頁面大小開始。例如,如果頁面具有可選元素(如特定於客戶的組合框),請確保只有正在使用的組件才被實際填充。通過不填充未使用的控件併爲它們禁用ViewState,我已經有了能夠超過一半頁面大小的情況。設置Visible =「false」是不夠的。
至於替代品,我用Telerik RadCombobox與類似的項目數和性能問題。設置EnableViewState =「false」可顯着提高回發速度,但加載時間仍不可接受。切換到load on demand的幫助,但引入了新的問題,堅持選擇狀態沒有ViewState。按需填充組合框表示在ItemsRequested事件中執行數據綁定,每次組合框在UI中打開時都會執行數據綁定。這與使用帶有AutoCompleteExtender和頁面方法的普通文本框大致相同。您可能可以在這裏重用大部分Page_Load時間數據綁定代碼。總的來說,我有jQuery UI autocomplete和Ajax請求的最佳體驗,但這需要更廣泛的重新設計。
相關問題
- 1. AjaxControlToolkit,ComboBox風格
- 2. FireFox和AjaxControlToolKit Combobox
- 3. 在大項目中替代iframe
- 4. Combobox顯示項目
- 5. Combobox項目樣式
- 6. Github,推新項目代替舊項目
- 7. nhibernate替代批量大小
- 8. Flash的大量替代HTML?
- 9. 使C項目代替C++
- 10. sparkviewengine替代WebForms項目
- 11. sneakyjoystick替代非cocos2d項目?
- 12. 在設計器中隱藏AjaxControlToolKit項目
- 13. c#combobox顯示arraylist項目
- 14. C#Combobox不顯示項目
- 15. ComboBox中的只讀項目
- 16. Combobox綁定和空項目
- 17. 捕獲ComboBox項目單擊
- 18. Combobox添加項目問題
- 19. Combobox與圖像項目-WWF
- 20. WPF Combobox - 預選項目
- 21. Combobox顯示所有項目
- 22. ComboBox項目未加載WPF
- 23. AjaxControlToolkit
- 24. NSString從大量的項目
- 25. 用於大型項目的CHM替代HTML
- 26. 用字典值替代大的numpy張量中的條目
- 27. 一個ComboBox的項目如何由另一個ComboBox的選定項目確定?
- 28. 在combobox中不區分大小寫的項目(SelectList)
- 29. 替代存儲大量的表 - MySQL
- 30. 替代大量的MySQL布爾值?