【问题标题】:pusher and rails updating a divpusher 和 rails 更新 div
【发布时间】:2015-08-03 15:16:04
【问题描述】:

收到推送后,我希望它更新 div。 我不太了解javascript,但这是我到目前为止所掌握的。

#subscription

var pusher = new Pusher('<%= Pusher.key %>');
var channel = pusher.subscribe('test_channel');
channel.bind('greet', function(data) {
  $("#data.greeting").load(location.href + " #data.greeting");
 });

#trigger

<%= Pusher['test_channel'].trigger('greet', {  :greeting => "present"}) %>

#present 是本示例中尝试更新的 div。触发器有效,但子端没有任何反应

【问题讨论】:

    标签: javascript ruby-on-rails pusher


    【解决方案1】:

    您是否在视图中呈现触发器,例如在您的.erb 文件中?

    尝试保持订阅代码相同,然后在您的 rails 控制台中运行触发代码,就像下面这样:

    Pusher['test_channel'].trigger('greet', { :greeting => "present"})

    【讨论】:

    • 在控制台中触发成功,但sub似乎仍然不起作用
    • 您在dashboard.pusher.com 上的应用程序的调试控制台中看到了什么样的日志记录?
    • 我得到 Type: API message, socket is empty, Details: Channel: test_channel, Event: greet 然后消息内容:{ "greeting": "present" }
    • 是的,这就是触发的发生。当您加载视图时,您是否在调试控制台中收到任何订阅消息?
    • 是的,我得到一个类型连接,然后是一个订阅频道的类型:test_channel
    【解决方案2】:

    我是这样解决的。

      channel.bind('greet', function(data) {
      $("#present").load(location.href + " #present");
      });
    

    它只是忽略来自触发器的输入并运行该命令,效果很好。以这种方式实现可能需要更多的工作,但它会做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多