【问题标题】:UI freezes in iOS when I make an async call to a WebView using CocoonJS当我使用 CocoonJS 对 WebView 进行异步调用时,UI 在 iOS 中冻结
【发布时间】:2014-02-21 09:39:57
【问题描述】:

我使用 ImpactJS 开发了一款游戏,我正在使用 CocoonJS 在 Android 和 iOS 上运行它。我的游戏需要执行一些 AI 代码,而且耗时太长,所以我使用 WebView 在后台线程中执行代码(使用 CocoonJS forwardAsync 方法)。在 Android 中工作正常,但在 iOS 中,UI 线程被阻塞,直到 AI 代码完成......这是 iOS 上的 CocoonJS 问题?

【问题讨论】:

    标签: background-thread cocoonjs


    【解决方案1】:

    您能否联系 Ludei 以提供一些模仿此行为的示例代码,以便他们查看?

    【讨论】:

    • 我联系了 Ludei,他们告诉我,在 iOS 中,webview 在同一个线程上运行。但他们建议我在 webview 中使用 webworker 在后台线程中运行代码(从 iOS 5 开始支持 webworkers)。我测试了它,它就像一个魅力! :)
    • 嗯,这很奇怪。我经常使用 forwardAsync 并没有遇到这个问题。你能提供一些代码来看看你想要完成什么吗?
    • 我试图在后台线程中执行一个长时间运行的任务(此 connect 4 游戏的 AI:connect4.baviux.com)。在 Android 中运行良好,但相同的代码冻结了 iOS 中的 UI。 Imanol 告诉我,Android 中的 WebView 有自己的线程,但在 iOS 中运行在 UI 线程上,因此 UI 冻结。 Imanol 告诉我解决方案,那就是在 WebView 中执行一个 webworker,这很有效。这是问题的链接:support.ludei.com/hc/communities/public/questions/…
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2011-12-20
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-11
    相关资源
    最近更新 更多