簡體   English   中英

在Rails中發送Javascript請求

[英]Sending a Javascript request in rails

我試圖創建一個系統來通知用戶任何新的私人消息,消息控制器的index方法創建@messages和@newmessages的實例變量,這兩個變量都在index.html.erb中使用,我想這樣做index.js.erb使我的網站上出現Flash消息框。

我讓jquery每隔幾秒鍾運行一個函數,運行的函數是

function checkagain(){
 //Start a Timer, dont want it bombarding the server with constant requests
 $.timer(10000,function(){
  $.getScript("/messages.js");
  //RECURSE, see you again in 10 seconds
  checkagain();
 });
}

$ .getScript似乎沒有使它在index.js.erb上運行代碼,這很簡單:

alert("RESPONDING");

我似乎無法獲取它來觸發該頁面上的代碼。

我發現/messages.js不返回任何javascript,與index.html.erb相同

控制器的索引動作是:

def index
    @messages = Message.find(:all, :conditions => "receiver_id = '#{current_user.id}' AND `read` = '1'")
    @newmessages = Message.find(:all, :conditions => "receiver_id = '#{current_user.id}' AND `read` = '0'")
end

嘗試附加隨機查詢字符串以強制您的瀏覽器重新下載js文件:

$.getScript("/messages.js?random=" + Math.random());

您可以從消息控制器的index操作中發布一些代碼嗎? 如果messages.js沒有返回您期望的javascript,這似乎不是jquery的問題。

您是否具有應該返回該警報調用的messages / index.js.erb視圖,或者您的公共目錄中某處是否有messages.js文件?

您可以看一下Juggernaut ,它可以讓您使用Flash 8資源推送到客戶端瀏覽器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM