关于ionic2和Angular2的博客和评论给我留下了深刻的印象,我开始在离子2中编写一个应用程序,并发现ionic2滚动性能不适合iOS和Android的大量记录。
我在iOS中尝试过WKWebview,在性能上有一些改进,但是对于大型列表,屏幕常常变为黑色,所以我放弃了这个想法。 由于应用程序的大小增加,我不想使用人行横道,因此从未尝试过。
任何人都可以帮助建议解决此问题的任何解决方法或任何纯JavaScript框架解决方案来显示没有任何问题的大型列表吗?适用于Android和ios。
答案 0 :(得分:0)
滚动是与移动应用程序最常见的交互之一,感觉非常重要。本机应用程序具有可以平滑滚动的列表,它们可以响应触摸和方向的变化,以一种自然的方式加速和减速。
尝试使用Ionic2的虚拟滚动
虚拟滚动解决了这个问题。在Ionic 1中,这被称为Collection Repeat,在Ionic 2中它被称为Virtual Scroll,但它是一个在HTML5移动开发中广泛使用的概念。基本的想法是我们只在DOM中创建足够的元素来显示当前在屏幕上的列表数据,并且我们回收这些DOM元素以在屏幕滚动时显示新数据。
答案 1 :(得分:0)
滚动性能是大多数javascript框架中的常见问题。
这是因为触摸和滚轮事件。但是您可以将{passive:true}传递给事件侦听器以启用某些优化。通过预先执行此操作,您可以说您的处理程序永远不会使用preventDefault()来禁用滚动。
addEventListener(document, "touchstart", function(e) {
},{passive: true});
它尚未在所有浏览器中实现,但希望在所有浏览器实现时,所有主要的js框架都将采用这种技术。