【问题标题】:Using web workers with Sencha Touch 2通过 Sencha Touch 2 使用 Web Worker
【发布时间】:2013-02-12 06:45:34
【问题描述】:

前提:具有 Java 背景的完整 Sencha touch/Js noob -(5 天)

是否可以通过 Sencha Touch 使用 HTML5 网络工作者?我的场景是,我有一个使用 Sencha Touch 2 制作的应用程序,并与电话间隙打包在一起,在其中一个场景中,在单击按钮时,控制器会进行 API 调用,这会使 UI 暂时处于非活动状态-理想情况下喜欢将其移至辅助线程并保持 UI 尽可能响应,但由于 JS 是单线程的,我想利用 HTML5 webworkers 进行 Sencha touch 。我找到了 this 插件,但我可以将它与 Sencha Touch 2 一起使用吗?如果不是,我还有其他选择。请注意,这是针对具有 Sencha touch 的移动/平板电脑开发人员,而不是针对台式机的 extJS。

【问题讨论】:

    标签: javascript extjs sencha-touch-2 web-worker


    【解决方案1】:

    我从您的问题中了解到,您想使用 webworkers 来呈现 UI,对吗? 我认为这是不可能的,因为网络工作者的范围非常有限。以下是网络工作者可以访问的内容列表:

    • 导航器对象
    • 位置对象(只读)
    • XMLHttpRequest
    • setTimeout()/clearTimeout() 和 setInterval()/clearInterval()
    • 应用缓存
    • 使用 importScripts() 方法导入外部脚本
    • 产生其他网络工作者

    这是网络工作者无法访问的内容列表:

    • DOM(它不是线程安全的)
    • 窗口对象
    • 文档对象
    • 父对象

    遵循网络工作者用例列表:

    • 预取和/或缓存数据以供以后使用
    • 代码语法高亮或其他实时文本格式
    • 拼写检查器
    • 分析视频或音频数据
    • 后台 I/O 或 Web 服务轮询
    • 处理大型数组或庞大的 JSON 响应
    • 图像过滤
    • 更新本地网络数据库的多行

    有关网络工作者及其环境的更多信息:http://www.html5rocks.com/en/tutorials/workers/basics/

    谈谈我的扩展:我认为 Sencha 不太适合,因为它使用了 Ext 结构和类。

    最后,我不知道任何适用于网络工作者的 Sencha UX。

    更新 (2013/03/20)

    ExtJS-WebWorker 现在也适用于 Sencha Touch!

    【讨论】:

    • 我所拥有的是 - 我有一个进行 API 调用的列表,因此当我单击加载列表的按钮时,UI 线程会进行此调用并且 UI 挂起。有没有办法可以加载列表项,因为它们来自使用网络工作者的后台工作线程。?在煎茶触摸。我还假设 extJs 和 Sencha touch 齐头并进,我可以使用这些 web worker 类
    • @Wilk。您的网络工作者是否在单独的线程中运行?我正在使用演示中的 webworker0 并使用 webworker0.send('compute') 调用它的计算并在 compute() 函数中下载。但是ui仍然挂起? pastebin.com/xtVdfRKR
    猜你喜欢
    • 2012-07-22
    • 2013-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2012-05-31
    • 2012-09-13
    • 2012-05-05
    相关资源
    最近更新 更多