我有以下代碼:生命的變量
def show
@game = $site.new_game_of_type(params[:id])
@game.start
end
def update_game_time
render :partial => 'countdown', :layout => false
end
和倒計時部分:
<div id=countdown> <%= @game.running_time %></div>
在show.html.erb我有:
Time: <div id="countdown"> </div>
<%= periodically_call_remote(:frequency => 0.5,
:update => 'countdown', :url => {:action => :update_game_time}) %>
我想要在顯示的頁面中創建一個遊戲,所以我將有很多Ajax移動到那裏,但用戶不會在任何地方點擊。控制器的所有操作都將從Javascript調用。
我得到了@game爲零的錯誤。即使在方法update_game_time 中也是零,我怎樣才能使@game變量在用戶在該頁面時保持有效?
感謝您的回答。 服務器可以通過任何方式發起與客戶端的對話而無需以前的客戶端事件? The 0。5秒更新是我的黑客定期致電服務器,並讓他更新其信息給客戶端。這是我所知道的最好的 – Jordi 2009-05-07 18:04:40
服務器爲什麼要發起連接/對話?我不確定我明白。在* nix平臺上,你*可以使用cron作業(http://en.wikipedia.org/wiki/Cron)從服務器發出請求,但我不知道這種方法是否也是一個好主意。你能對你想要達到的目標做更具體的描述嗎? – andi 2009-05-07 21:30:26
我有一個底層引擎。我想使用Web界面讓用戶知道發生了什麼,並與流程進行交互。 用戶開始一個新遊戲,然後引擎將讀取遊戲定義並創建用戶界面。遊戲有時間限制,有新的傳入數據等。我想發送給用戶的事件。 這是可能的,但我的投票方法肯定不是最有效的 – Jordi 2009-05-08 01:45:29