0

私は、さまざまな国の人口における HIV/AIDS の経過を推定する公衆衛生プロジェクトに取り組んでいる、やや新しい Web デザイナーおよび開発者です。テスト版はこちら: http://globalhealthdecisions.com/test/tool/

この流行モデルは Ruby で構築しました。このモデルは、各年のグループ間の性的相互作用と病気の伝染のさまざまな確率を計算します。現在、約 40 年間実行され、最終的に最終結果が JSON オブジェクトとして出力されます。スクリプトは、CLI での実行を完了するのに約 8 秒かかります。モデルのフロントエンドを実装しました。AJAX リクエストを使用すると、サーバーからの応答を受信するのに最大 30 秒かかる場合があります。

私の質問: モデルの計算中にサーバーから更新を受信する方法はありますか? つまり、Ruby スクリプトを現在実行している間に、1 年を計算してその年を出力し、それをクライアントに送信することはできますか? もしそうなら、この「プッシュ」方式で、毎年受け取るたびに読み込むことができ、待ち時間が大幅に短縮されます。

本当にありがとう。

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 に答える