使用 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 中选项卡切换太慢的主要内容,如果未能解决你的问题,请参考以下文章

在 mac 上安装 sencha-touch 2.1

如何在 Sencha Touch 中使用数据库? [关闭]

如何在 Sencha Touch 2 模型中存储日期

无法使用 Sencha Cmd 3.1.1.274 构建 Sencha Touch 2.1 应用程序

在 Sencha Touch 2 中屏蔽 Flash 内容

Sencha Touch 2:数据集成或如何在sencha和javascript之间共享动态信息