繁体   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