2012-02-29 12 views
0

内のビューテンプレートを複数回更新することができます。ルビーシナトラ:私はこれをしたい1つのクライアント要求

get '/test' do 
    @dog = 'WOOF' 
    erb :test 
    sleep(1) 
    @dog = 'BOWWOW' 
    erb :test 
    sleep(1) 
    @dog = 'ARF' 
    erb :test 
    end 

は、クライアントが各更新を見て、あるいは全く、私は」このような何かをすることが可能です試してみましたが、うまく動作しません。

+0

あなたは正確に何を達成しようとしていますか? –

+0

@Andrew Marshall私は1回のリクエストでビューを何回かレンダリングしようとしています。実践的な目的はチェッカーゲームで、シングルプレイヤーモードでプレイヤーの移動要求を処理し、要求終了前にAIの移動を処理する方法を開発する必要がある場所を構築しています。私がしたいことは、プレイヤーの移動後にビューを表示し、AIの動きを処理してからビューを再描画することです。私のコードはクライアントの要求に応じてゲームを動かすことです。私は、AIがリクエスト自体を生成することはできないと確信しているので、ゲームの流れは止まってしまいます。長い応答のため申し訳ありません –

答えて

3

要約:なし

あなたはHTTPの仕組みを混乱させると思います。まず、HTTPはstatelessです。これは、複数のリクエストがお互いについて何も知らないことを意味します(これは、クッキーによるセッションの使用、またはおそらくHTTP基本認証によって緩和されます)。

さらに、HTTP本体を再送信することはできません。一度それが送られても、戻って行くことはありません。長いポーリングのようなテクニックは、いつでも好きなときに送ることができるように本文を送信するのを遅らせるが、何かを送ると要求が完了し、新しいものが開始されなければならない。したがって、ボディを一度レンダリングすると、erbを経由して、リクエストが完了します。

あなたが達成しようとしているようなことは、AJAXでJavaScriptを使用するか、完全に別々のフルページリクエストでのみ行うことができます。

関連する問題