Javascript 从AJAX setInterval更改为Web工作者

Javascript 从AJAX setInterval更改为Web工作者,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在下面有一个脚本,可以异步更新setInterval上的标记;使用jQuery从XML数据生成的标记。这是我尝试创建的UI,用户可以在其中实时查看XML数据的变化。然而,与WebWorkers API相比,这似乎是一种实现预期效果的迂回方式;我发现我的AJAX脚本和setInterval函数不可靠;在某些初始加载和长时间运行后,脚本似乎冻结或不响应。如何修改代码以使用workers而不是AJAX或setInterval 上面脚本的名称是home.js,下面是index页面index.html和

我在下面有一个脚本,可以异步更新setInterval上的标记;使用jQuery从XML数据生成的标记。这是我尝试创建的UI,用户可以在其中实时查看XML数据的变化。然而,与WebWorkers API相比,这似乎是一种实现预期效果的迂回方式;我发现我的AJAX脚本和setInterval函数不可靠;在某些初始加载和长时间运行后,脚本似乎冻结或不响应。如何修改代码以使用workers而不是AJAX或setInterval

上面脚本的名称是home.js,下面是index页面index.html和worker my_task.js的示例:

            // index.html
            <script>
    var myWorker = new Worker("my_task.js");

    myWorker.onmessage = function (oEvent) {
      console.log("Worker said : " + oEvent.data);
    };

    myWorker.postMessage("ali");




            // my_task.js
    postMessage("I\'m working before postMessage(\'ali\').");

    onmessage = function (oEvent) {
      postMessage("Hi " + oEvent.data);
    };

如何以index.html和my_task.js的实现方式实现home.js?非常感谢,我真的只是在寻找一种方法开始使用workers作为下一个级别,因为我最近刚刚学习了AJAX。此外,我知道这可能被视为一个广泛的问题,因此我愿意根据要求和建议改进我的问题。

在使用webworkers之前,我将首先实施长轮询以减少ajax请求的频率。Setinterval不是执行ajax请求的好方法,除非间隔很重要,例如每分钟一次。间隔为1500ms时,网络连接速度慢或网络速度慢会导致请求堆积。注意,如果你执意使用webworkers,那么longpolling在webworker中也会起作用。@KevinB Kevin,你是在说这样的事情吗?我不知道它是如何实现其功能的。我通常自己做,实施起来并不难。客户端发送请求并设置30秒的超时。在服务器端,接收到一个请求,并在30秒内每隔一段时间检查一次新数据。若发现新数据,则返回到客户端,若30秒过去,则将空数据返回到客户端。重复冲洗。
            // index.html
            <script>
    var myWorker = new Worker("my_task.js");

    myWorker.onmessage = function (oEvent) {
      console.log("Worker said : " + oEvent.data);
    };

    myWorker.postMessage("ali");




            // my_task.js
    postMessage("I\'m working before postMessage(\'ali\').");

    onmessage = function (oEvent) {
      postMessage("Hi " + oEvent.data);
    };