javascript - 更新API事件的innerHTML

标签 javascript dom innerhtml pusher

我使用 Pusher API 打开了一个 Websocket,每当新用户订阅或取消订阅该 channel 时,当我在控制台中 checkin 时,它就会成功更新 members.count 变量。

但是,innerHTML 仅在加载时显示。 尚未更新。

  var presenceChannel = pusher.subscribe('presence-channel')
  var userCount

  presenceChannel.bind('pusher:subscription_succeeded', function(members){
      userCount = members.count;
      document.getElementById('userCount').innerHTML = userCount;
  });

html

<h1 id="userCount">X</h1>

我错过了什么?

最佳答案

我以前没有使用过 Pusher,但快速浏览一下文档意味着 pusher:subscription_succeeded 仅触发一次......具有讽刺意味的是,当 subscribe() 成功时。我认为您需要 pusher:member_addedpusher:member_removed 在成员来和离开时使用。

我会创建一个方法来处理这一切:

var presenceChannel = pusher.subscribe('presence-channel');

function updateUserCount() {
  document.getElementById('userCount').innerHTML = presenceChannel.members.count;
}

presenceChannel.bind('pusher:subscription_succeeded', function(members) {
  updateUserCount();
});
presenceChannel.bind('pusher:member_added', function(member) {
  updateUserCount();
});
presenceChannel.bind('pusher:member_removed', function(member) {
  updateUserCount();
});

关于javascript - 更新API事件的innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28776267/

相关文章:

javascript - <body> 元素上的 DOMNodeInsertedIntoDocument

javascript - 使用 innerHTML 创建表头

javascript - 重新加载父窗口 CRM 在线 Google Chrome

Php - Dom,在 nodeValue 中插入 HTML_CODE

javascript - 如何在javascript中从数组中提取数据

php - 使用 php foreach 循环使用 php 变量创建 DOM ID

jquery - 定位标签之间的文本?

javascript - 无法使用innerHTML导入javascript代码

addEventListener 上的 JavaScript 自调用函数

javascript - 通过javascript获取网页元素节点的文本节点