我一直在关注 Chrome 开发者工具中的“网络”部分,以查看 Stack Overflow 上的新动态帖子有哪些事件。
我希望看到周期性的网络事件来检查页面上更新元素的脚本(例如发布的新评论或答案)- 但似乎没有!
我刚刚为我网站上的某些页面实现了定期“心跳”。
Stack Overflow 是否实现了对新帖子的某种“推送”检查?
最佳答案
使用网络套接字。
在页面加载时,站点连接到 wss://qa.sockets.stackexchange.com/
websocket 并发送 <site_id>-question-<question_id>
向它发送消息(例如 1-question-14384446
),因此订阅问题事件(新答案、新评论、帖子删除、分数更改等)。
这是一个 JavaScript 示例。要测试它是否有效,您可以在您的问题或此答案下添加评论:
const socket = new WebSocket('wss://qa.sockets.stackexchange.com/');
socket.onopen = () => {
socket.send('1-question-14384446'); // subscribe to question events
console.log('Listening for new comments...');
};
socket.onmessage = ({ data }) => {
const obj = JSON.parse(data);
// sent every 5 minutes to check if connection is alive
if (obj.action === 'hb') {
socket.send('pong');
return;
}
const { a: type, commentid } = JSON.parse(obj.data);
if (type !== 'comment-add') return; // not a comment
console.log('New comment with id', commentid);
};
socket.onerror = console.error; // just in case
引用:
关于ajax - Stack Exchange 如何检查新帖子/评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384446/