0

前の質問の問題の解決策に近づこうとしています。

私が試してみたいスキームは次のとおりです。

  1. ユーザーが RoR コントローラーからアクションを要求します。
  2. アクションは、いくつかのデータベース クエリを作成し、いくつかの計算を行い、いくつかのセッション変数を設定し、いくつかの RJS コードを応答として返します。このコードは、
    • プログレス バーを更新し、別の ajax リクエストを行います。
    • すべての処理が終了したら、最終結果 (例: グラフ グラフィック) を表示します
  3. ブラウザーは、RJS の JavaScript 表現を評価します。別の (再帰的ですか? 再帰はまったく許可されていますか?) 要求を行うか、ユーザーに結果を表示するだけです。

そこで、今回の私の質問は、XMLHttpRequest 呼び出しを rjs コードに適切に埋め込むにはどうすればよいかということです。

私が知りたいことは次のとおりです。

スタック オーバーフローを避けるために、新しいスレッドを作成する必要があります。どの Rails ヘルパーを (もしあれば) 使用する必要がありますか?

Railsや他のフレームワークで似たようなことをした人はいますか?

私の考えは正気ですか?

4

1 に答える 1

0

最近ではRJS情報を入手するのが難しくなっているかもしれませんが、控えめなJavaScriptはRailsコミュニティでより多くのマインドシェアを獲得していると思います。あなたが説明していることは確かに可能です。私の提案は、jQueryを使用してAJAXを学ぶのに少し時間を費やすことです。実行する可能性のある手順は次のとおりです。1)コントローラーアクションに対してGETリクエストを作成し、2)何かを実行し、JSONで応答し、3)サクセスハンドラーコードのクライアント側で、サーバーを再度呼び出す必要があるかどうかを判断します。

jQueryでRailscastを確認してください。ここに文字起こし http://asciicasts.com/episodes/136-jqueryがあります。

jQuery $ .get()または$ .getJSON http://api.jquery.com/jQuery.get/

Railsのrespond_toブロック、ここで「wants.js」コードをチェックして くださいhttp://www.mckinneystation.com/2009/07/13/rails-respond_to-made-it-too-easy/

JSONとしてシリアル化されたRubyオブジェクトで応答できます。 render :json => @thing.to_json

を使用$.getJSON()すると、応答がJavaScriptオブジェクトに逆シリアル化されるため、ドット構文を使用してプロパティに簡単にアクセスできます。例(擬似コード): $.getJSON('/url-to-thing.js', function(thing) { if( thing.status != 'done' ) { /* call function again */ } });

このようにして、「thing」が「done」になると、関数は呼び出されなくなります。クライアントとサーバーの部分の責任に慣れることは、最初は気が遠くなるかもしれませんが、はるかに動的でインタラクティブなWebアプリケーションを開発できるようにすることで、長期的には成果が得られます。

于 2010-04-01T18:08:08.790 に答える