我正在使用 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需要很长时间来加载
谢谢..但我的特殊要求是让用户选择多个项目。为此我想知道是否有任何可用的已经证明的角度解决方案。 –