Titanium Tianium SDK从7迁移到8应用程序流类似于框架

Titanium Tianium SDK从7迁移到8应用程序流类似于框架,titanium,Titanium,我有一个应用程序运行在钛7.5.1.GA上 当我尝试更新到8.0.0.GA时,该应用程序已启动并在iOS上运行 但在应用程序中导航时,它的工作方式就像框架一样。。。(特别是如果我打开一个包含大量代码或昂贵数据处理或自调用循环的窗口…etec)。。。UI冻结,直到代码执行完成,然后将所有UI呈现为“POFF” 现在的问题是,我不知道会发生什么……在SDK 7.5.1.GA上,性能100%运行良好 注意:在主线程上运行=false。。。。我读到,在SDK 8中,默认情况下它被强制为“true”。。。

我有一个应用程序运行在钛7.5.1.GA上

当我尝试更新到8.0.0.GA时,该应用程序已启动并在iOS上运行

但在应用程序中导航时,它的工作方式就像框架一样。。。(特别是如果我打开一个包含大量代码或昂贵数据处理或自调用循环的窗口…etec)。。。UI冻结,直到代码执行完成,然后将所有UI呈现为“POFF”

现在的问题是,我不知道会发生什么……在SDK 7.5.1.GA上,性能100%运行良好


注意:在主线程上运行=false。。。。我读到,在SDK 8中,默认情况下它被强制为“true”。。。。但解决办法是什么。。。。。我的应用程序非常大,我该怎么办?我应该重构所有。。。。我对Tianium中的“在主线程上运行”不太了解。

在主线程上运行
意味着您的业务逻辑将在与UI相同的线程上运行。您在SDK 8上看到糟糕性能的原因是,这是目前唯一的选择。所以没办法

然而,这仅仅说明了你的应用程序优化得有多么糟糕,并且可能在运行时耗尽了大量电池。你需要优化你的应用程序渲染,只做那些需要的事情。你的应用程序中有什么样的业务逻辑?手机的性能如此糟糕?感觉有很多事情可以做得更好,也有很多事情可以简化

你可以做以下几件事:

  • 选项卡组:仅渲染可见的选项卡
  • 分页:不要在列表中呈现超过20-30个项目,添加动态分页,只呈现部分项目
  • 繁重的计算:尽量避免计算,或者存储结果,这样你只需要做一次。在这种情况下,重构也可以实现,因为编程中的许多计算可以通过多种方式实现,其中一些方式比其他更简单的结果要复杂得多
  • 避免重新渲染。如果您将项目逐个添加到列表中,而不是一次将所有项目添加到列表中,那么您将拥有一个更轻松的界面
  • 要补充上一点,如果使用Alloy数据绑定,这种重新渲染(一次一个项目)是非常糟糕的
你可以做更多的优化来使它更好。如果你能很好地编程,你就不会注意到任何延迟。我已经有了10000个项目的列表,其中每个项目都需要计算(lat/lng距离计算、标题重新格式化和momentjs映射),我仍然能够在半秒钟内渲染它。当然,后来我又把它放回了大约100个项目,因为10公里无论如何都是无用的


除此之外,我无法在不查看代码的情况下进一步帮助您。

在主线程上运行
意味着您的业务逻辑将在与UI相同的线程上运行。您在SDK 8上看到糟糕性能的原因是,这是目前唯一的选择。所以没办法

然而,这仅仅说明了你的应用程序优化得有多么糟糕,并且可能在运行时耗尽了大量电池。你需要优化你的应用程序渲染,只做那些需要的事情。你的应用程序中有什么样的业务逻辑?手机的性能如此糟糕?感觉有很多事情可以做得更好,也有很多事情可以简化

你可以做以下几件事:

  • 选项卡组:仅渲染可见的选项卡
  • 分页:不要在列表中呈现超过20-30个项目,添加动态分页,只呈现部分项目
  • 繁重的计算:尽量避免计算,或者存储结果,这样你只需要做一次。在这种情况下,重构也可以实现,因为编程中的许多计算可以通过多种方式实现,其中一些方式比其他更简单的结果要复杂得多
  • 避免重新渲染。如果您将项目逐个添加到列表中,而不是一次将所有项目添加到列表中,那么您将拥有一个更轻松的界面
  • 要补充上一点,如果使用Alloy数据绑定,这种重新渲染(一次一个项目)是非常糟糕的
你可以做更多的优化来使它更好。如果你能很好地编程,你就不会注意到任何延迟。我已经有了10000个项目的列表,其中每个项目都需要计算(lat/lng距离计算、标题重新格式化和momentjs映射),我仍然能够在半秒钟内渲染它。当然,后来我又把它放回了大约100个项目,因为10公里无论如何都是无用的


除此之外,如果不仔细查看您的代码,我无法进一步帮助您。

因为我们不知道您正在运行的应用程序或代码,所以很难判断。这里有一些提示,比如或。或者,例如:使用onopen事件等。我仍然建议进行升级甚至重构,以保持应用程序的最新状态。使用8.3.0.GA!这真的很难说,因为我们不知道你正在运行的应用程序或代码。这里有一些提示,比如或。或者,例如:使用onopen事件等。我仍然建议进行升级甚至重构,以保持应用程序的最新状态。使用8.3.0.GA!如果你想得到社区的帮助,欢迎加入“感谢大家的帮助”钛合金休闲活动。。。。似乎用更好的优化代码进行重构是解决方案。如果你需要社区帮助,欢迎加入Tianium Slack,感谢大家的帮助。。。。似乎用更好的优化代码进行重构才是解决方案