bib*_*gar 5 sockets jquery node.js
我成功融合后设置了socket.emit事件.但是当我绑定sockets.on事件时会出现问题.它被多次开除.
$(document).on('click', '#comment_button', function() {
$.ajax({
// upon success
success: function (response) {
if (response) {
socket.emit('postcomment');
socket.on('refresh', function () {
console.log('refresh');
//This console.log('refresh') is coming multiple times. I mean its occurance increases with every successful ajax response.
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
这是我的server.js
socket.on('postcomment', function () {
io.sockets.emit("refresh");
});
Run Code Online (Sandbox Code Playgroud)
我已经验证在我的server.js socket.on函数中只调用了一次.我不知道socket.on('refresh', function () {}在ajax中有什么问题.任何帮助都会很棒.
PS插座连接已经完成.没问题.
编辑:我纠正了这个错误.如果有人将来读这个.正如杰森和尼兰詹提到的那样,
socket.on{}事件在成功回应时具有约束力.简单来说:每次调用click处理程序时,它都会向socket添加其他事件侦听器.您在之前点击时附加的听众仍然有效.
所以我对之前的代码进行了以下更改
$(document).on('click', '#comment_button', function() {
$.ajax({
// upon success
success: function (response) {
if (response) {
socket.emit('postcomment');
}
});
});
socket.on('refresh', function () {
console.log('refresh');
});
Run Code Online (Sandbox Code Playgroud)
快乐的编码.
我对以前的代码进行了以下更改。有效。
$(document).on('click', '#comment_button', function() {
$.ajax({
// upon success
success: function (response) {
if (response) {
socket.emit('postcomment');
}
});
});
socket.on('refresh', function () {
console.log('refresh');
});
Run Code Online (Sandbox Code Playgroud)
socket.on{} 事件在成功响应后自行绑定。简单来说:每次调用单击处理程序时,它都会将其他事件侦听器附加到套接字。您在之前的点击中附加的侦听器仍然处于活动状态。
| 归档时间: |
|
| 查看次数: |
1030 次 |
| 最近记录: |