2011-07-08 22 views
0

ポーリングAJAXリクエストをサーバーに送信し、サーバーにデータを送信する必要があります。私はいくつかの異なる背景ジョブを実行していますが、それぞれのジョブが終了したかどうか確認したいと思います。私はそれを行うための宝石を見つけましたが(resque-status)、javascriptとコントローラの間でデータをやりとりする方法は不明です。AJAXをポーリングしてJavaScriptとサーバー間でデータを送信する

まず、このポーリングAJAXリクエストをサーバーに構築する方法は何ですか?構文は何でしょうか?私が確信している次のことは、ジョブのステータスをajaxリクエストに戻す方法と、すべてのジョブが終了していない場合にAJAXリクエストを再度送り返すことです。私はJSONがおそらくここで助けてくれると仮定しています。

私は、好ましくは、RailsとjQueryの上のルビーを使用して(コード例を本当に感謝し

答えて

1

jqueryのよう

JSライブラリを使用します。

$(document).ready(function(){ 
    $.ajax({ 
     method: "POST", 
     url: "ajax.php", 
     dataType: "json", //jquery will convert the json into an object 
     data: { //data sent to server 
      foo: "foo", 
      bar: "bar" 
     }, 
     success: function(data){ //callback function 
      if(data["type"] == "success"){ 
       alert(data["msg"]); 
      }else{ 
       alert("malformed response"); 
      } 
     } 
    }); 
}); 

PHP:

<?php 
$obj = new stdClass(); 
$obj->type = "success"; 
$obj->msg = "foo: " . $_POST["foo"] . ", bar: " . $_POST["bar"]; 
echo json_encode($obj); //echo the object as json 
?> 
+0

ここで、PHPのjsonデータはajax関数に返されますか?どのAJAX関数がjsonデータを送信するのかをどのように知っていますか? Btw、私はRoRを使用しています。あなたがそれを知っているなら、私はその言語フレームワークの例を好むでしょう。 –

+0

echo json_encode($ obj);それを送り返しています。それは、リクエストに含まれるパラメータに基づいて何を返送すべきかを知っています。 –

+0

しかし、それを同じAJAX関数に送り返すことをどのように知っていますか?あなたはそれをRoRコントローラの内部から戻す方法を知っていますか? –

関連する問題