0

我是一个有点新的网页设计师和开发人员,致力于一个公共卫生项目,以估计不同国家人口中艾滋病毒/艾滋病的进程。我们的测试版本在这里: http: //globalhealthdecisions.com/test/tool/

我们用 Ruby 构建了这个流行病模型。该模型计算了每年各组之间性互动和疾病传播的不同概率。目前,它运行了大约 40 年,最后将最终结果输出为 JSON 对象。该脚本需要大约 8 秒才能在 CLI 中完成运行。我已经为模型实现了一个前端,并且使用 AJAX 请求,最多可能需要 30 秒才能收到来自服务器的响应。

我的问题:有没有办法让我在计算模型时从服务器接收更新?即,我可以计算一年,输出那一年,将其发送到客户端,同时仍在运行 Ruby 脚本的当前执行吗?如果是这样,以这种“推送”方式,我可以在每年收到它时加载,从而显着减少等待时间。

非常感谢。

4

1 回答 1

1

假设您可以从脚本中获取所需的数据块,我认为您可能正在寻找某种轮询,也许是长轮询。这是一篇关于该主题的好文章:

http://techoctave.com/c7/posts/60-simple-long-polling-example-with-javascript-and-jquery

这是上面文章中使用 jquery 的要点:

(function poll(){
    $.ajax({ url: "server", success: function(data){
        //Update your dashboard gauge
        salesGauge.setValue(data.value);

    }, dataType: "json", complete: poll, timeout: 30000 });
})();

本质上,它只是一个 ajax 请求循环,每次服务器完成请求时调用成功函数,完全超时,在这种情况下,在 30000 毫秒之后。

希望有帮助。

于 2013-04-17T07:52:40.330 回答