javascript - Android 上的 JQuery.Hive(工作线程)

标签 javascript jquery android worker

我目前正在编写一个显示我们大学自助餐厅菜单计划的应用程序。 为了使其独立于平台,我使用 Phonegap; XML 解析是在 JQuery 的帮助下完成的,布局是用 JQuery Mobile 生成的。

在我的 motorola defy 上解析菜单的 XML 文件大约需要 1-2 秒。例如,如果您通过单击单选按钮将位置更改为另一个自助餐厅,GUI 将在这一秒内卡住。我在 JavaScript 中发现了工作线程的概念,并决定将 XML 数据的解析委托(delegate)给工作线程。不幸的是,我不得不发现 JQuery 在工作线程中不起作用:-( 然后我发现插件 JQuery.hive 似乎解决了我的问题。我现在在配置单元环境中创建线程,发送消息,在内部处理它工作线程并收到答案。 不幸的是,这仅适用于 Firefox,不适用于我的 Android/Phonegap 应用程序。

这是我生成 Worker 的地方:

$(function() {

$("#mydiv").append("Start |");

$.Hive.create({
    worker : 'Worker_Parser.js',
    receive : function(data) {

    $("#mydiv").append('RECEIVED MESSAGE: ' + data.message + ' | ');
            }           
        });
$("#mydiv").append("Worker generated | ");
    });

$.Hive.get(0).send("test");

$("#mydiv").append("End ");

这是工作线程:

importScripts('jquery.hive.pollen.js');

$(function (data) {
       $.send("test");
     });

Firefox 显示

Start | Worker generated | End | RECEIVED MESSAGE: test | 

Android Broswer 在尝试启动线程时取消脚本并仅显示:

Start |

JQuery.hive 是否应该在 Android 下运行? 有没有更好的方法来解决我在不卡住 GUI 的情况下解析 XML 的问题?

提前致谢

汤姆

最佳答案

Looking here ,您会看到当前的 Android 浏览器和 iOS 都不支持 Web Worker。

您能否在 XML 文件中进一步分解数据,并根据用户交互以较小的 block 发送它,而不是一次发送整个菜单?也许只将菜单请求缩小到当天并触发其他日子的 AJAX 请求?

关于javascript - Android 上的 JQuery.Hive(工作线程),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433527/

相关文章:

javascript - 这个 Javascript 注册代码有什么作用?

javascript - 允许目标事件的默认操作并阻止父事件的默认操作

android - 从任务管理器中杀死android应用程序会杀死应用程序启动的服务

使用 getStringArray 时出现 java.lang.NullPointerException

javascript - 如何禁用 chrome 警报通知?

javascript - 单击图像后如何显示弹出窗口

jquery - 仅当用户屏幕分辨率高于 X 时,如何运行一些 JQ 代码?

javascript - 通过 JavaScript 下载文件?

javascript - 无法看到 MapBox React Native GL 注释

Android - Admob - 加载广告然后更改可见性会导致问题