2

Ajax リクエストがあります。

$.ajax({
    url: '/test/start_images_stream',
    type: "GET",
    data : { image_id: tst },
    dataType: "json",
    complete: function (data_response) {
        status = data_response.responseText; 
        console.log("The response was: "+status);
        stream_images();
    }
});

これは私のJavaScriptをフリーズしているようです。ajax リクエストでスタックしたままになり、stream_images() に移動しません。

私のサーバーでは、これを取得しました:

  def start_images_stream

  #ajax request parameters
  tst=params[:image_id]

  start_method

  respond_to do |format|
    format.json  { render :json => "OK"}
  end 

  end

'start_method' には loop..do があり、決して終了しません! それが問題かもしれないことを理解しています。そこで、ajax リクエストを POST リクエストに変更しました。

$.ajax({
    url: '/test/start_images_stream',
    type: "POST",
    data : { image_id: tst },
    dataType: "json",
    complete: function () {
        stream_images();
    }
});

私のサーバーコードをそれに適応させました。今、ajax リクエストがメイン スレッドを再びフリーズしているようです。サーバーに言いたいのは、「関数a」を開始して、無制限の数の画像を作成することです。次に、Javascript がファイルを読み取り、HTML ページに一覧表示します。

うまくいかないようです

4

2 に答える 2

3

私はあなたの完全な機能だと思います:

complete: function () {
        stream_images();
    }

次のように、成功プロパティにある必要があります。

success: function () {
        stream_images();
    }
于 2012-12-21T13:05:50.857 に答える
0
status = data_response;

コールバックは結果を引数 (json が指定されている場合は文字列またはオブジェクト) として渡しますが、responseTextプロパティはありません。

responseTextjQuery はそのようなものを抽象化するので、プロパティを知ることを心配する必要はありません。結果を取得するだけです。

于 2012-12-21T12:51:12.130 に答える