使用 Sencha touch 2 在 UIWebView 中选项卡切换太慢
Posted
技术标签:
【中文标题】使用 Sencha touch 2 在 UIWebView 中选项卡切换太慢【英文标题】:Tab switch too slow in UIWebView with Sencha touch 2 【发布时间】:2012-04-17 15:24:13 【问题描述】:我在我的 ios 应用程序中使用 sencha touch 2。但是选项卡面板太慢了,有一个选项卡包含很多内容,但是所有选项卡都很慢(在选项卡高亮和页面转换之间存在延迟,切换大约需要 1 秒)。
我尝试了 deferredRender
参数,但没有帮助。
我应该如何编写我的 tabPanel 以使其更快?
注意:同一页面在 android 上切换标签的速度更快,尽管在其他所有方面 android webview 都较慢
谢谢
【问题讨论】:
【参考方案1】:这个问题和你的很相似:
PhoneGap 1.4 wrapping Sencha Touch 2.X - What about performance?
正如我在该主题中所说,通常 Android 的视图之间的转换更快,但其他效果(尤其是滚动)比 iOS 慢得多。
目前我知道的唯一解决方案是保持 DOM 轻量级。不要尝试创建所有可能出现在您的应用程序中的视图并稍后通过 setActiveItem() 调用它们,因为它会极大地扩大您的 DOM。当你切换到一个新标签时,我建议你应该销毁所有其他标签的子组件(并且只保留一些变量,如果你想在切换回来时恢复它们的状态)。
【讨论】:
您好,感谢您的回答。你能告诉我最好的方法吗?创建我的项目是否足够,但仅在激活时将它们添加到我的选项卡并销毁旧项目?有点像activeitemchange : function(container, newValue, oldValue,opts) oldValue.getItems().items.length = 0;newValue.add(tabItems[index-1]);
是的。这为 DOM 搜索节省了大量内存和时间,但另一方面,重新构造 DOM 元素需要时间,因为您之前已经在停用期间销毁了它们。但基本上,这是提高应用性能的好习惯。
谢谢。我可以将它们从 DOM 中删除,并将它们保留为 javascript 变量,我想这可以节省一些时间以上是关于使用 Sencha touch 2 在 UIWebView 中选项卡切换太慢的主要内容,如果未能解决你的问题,请参考以下文章