我正在使用 http://dotansimha.github.io/angularjs-dropdown-multiselect/#/ 。對於超過500個的列表,此下拉列表的加載速度非常慢。花費一整分鐘來顯示選項。有沒有更好的替代方案?請建議。Angularjs Dropdown多選選擇需要很長時間加載
2
A
回答
1
你遇到了一個常常 - 錯誤地被歸咎於Angular的DOM的根本挑戰。簡單的事實是,創建並向DOM注入500個元素總是會很慢,無論您是使用Angular來完成它,還是其他的事情。 Angular使得這與ng-repeat
很容易做到,但你不應該這樣做。在這種情況下,每個「item」似乎有3個DOM元素,所以實際上爲500個項目創建了1500多個DOM元素。滾動表現也將是可怕的。
那麼,這是爲什麼你有問題,但不是你的問題的解決方案。首先,我會考慮多選是否真的是一個有500個選項的有用方法。這聽起來基本上令用戶感到困惑和困難。更像是一個自動完成的標記界面(如SO)可能更適合這些選項,並且會阻止您將所有這些選項注入到DOM中。
更一般地說,顯示500個項目列表的最佳方式是......不是實際創建500個DOM元素。目前最好的方法是隻創建儘可能多的元素,然後在屏幕上進行回收,然後在滾動時回收內容。將諸如Ionic's collection-repeat directive之類的東西適配到您的用例可能會顯着提高性能。
我看不出有什麼辦法可以使這個特定的指令在500條記錄中執行得更好,而不會在這些行中產生重大的重構。這不是錯誤的代碼,但只是沒有爲這個大小的列表而設計。
0
我有同樣的問題。 只需將$ ajax請求更改爲'async:false'即可解決問題。
讓$ ajax請求先完成然後加載DOM。 在'async:true'請求的情況下,它不會等待服務器響應並加載DOM。
相關問題
- 1. 選擇查詢需要很長時間
- 2. Oracle SQL:一個選擇需要很長時間,另一個選擇很快
- 3. AngularJS頁面需要很長時間才能加載
- 4. IntellIj索引器需要很長時間。任何選擇?
- 5. 以分組方式選擇需要很長時間
- 6. LINQ to Entities選擇需要很長時間
- 7. Office 2007加載項首次加載需要很長時間
- 8. 加載另一個頁面需要很長時間jquery加載
- 9. KnownFolders.VideosLibrary.GetFilesAsync()需要很長時間
- 10. HTTPURLConnection.getInputStream()需要很長時間?
- 11. presentRenderbuffer:GL_RENDERBUFFER_OES需要很長時間
- 12. Httpclient需要很長時間
- 13. NSHost需要很長時間
- 14. 簡單的選擇需要很多時間來執行
- 15. Android應用有時需要很長時間才能加載
- 16. AngularJS - 帶有許多「選擇」元素與ng-repeat構建的表格需要很長的時間
- 17. 下載文件需要很多時間
- 18. UIDocumentInteractionController需要很長時間來顯示選項
- 19. 圖片資源需要很長時間才能加載
- 20. jpeg圖像需要很長時間來加載黑莓
- 21. 加載隱藏的Quicktime需要很長的時間嵌入
- 22. Google地圖需要很長時間才能加載
- 23. Wordpress網站需要很長時間才能加載
- 24. 終端中的Perl需要很長時間才能加載
- 25. 需要很長時間才能加載的Python腳本
- 26. Grails應用程序加載需要很長時間?
- 27. Excel加載項需要很長時間才能保存
- 28. Visual Studio需要很長時間才能加載解決方案
- 29. Eclipse'加載描述符'需要很長時間
- 30. OmniFaces CombinedResourceHandler需要很長時間來加載
謝謝..但我的特殊要求是讓用戶選擇多個項目。爲此我想知道是否有任何可用的已經證明的角度解決方案。 –