这是关于什么的
我目前正在为 Campfire 聊天服务上的表情符号编写脚本,因为它们没有表情符号功能。现在它运行表情符号的速度真的很慢,因为它使用了一个 setInterval,假设在聊天中有新消息时每隔 200 毫秒检查一次。我通过将两个变量“a”和“b”与var a,b;
. 因此,在第一个 setInterval 中,我将其计时为150毫秒。在这里面,我只是给变量“a”提供了聊天的 HTML 值。然后在第二个 setInterval (200) 中,我也给变量“b”提供了 HTML 的值,但这是一个不同的时间,所以现在我在if
声明,如果不同,我运行函数将符号更改为表情符号。我这样做是为了提高性能。即使在篝火聊天中没有人真正写过东西,它也会检查表情符号,因此无需检查表情符号。
这是完整的功能:
var a, b;
setInterval(function() {
a = $('#chat').html();
console.warn("Chat HTML has been Scanned");
}, 150);
var t = "0";
setInterval(function() {
b = $('#chat').html();
console.warn("Chat got scanned for Change in html.");
if (emoOn == true) {
if (t === $('#num12345').text()) {
$(".participants").after('<div id="emote"><h3><span class="room_actions"><a href="javascript:void(0)" class="on" style="font-weight:bold;">On</a> | <a href="javascript:void(0)" class="off" style="cursor:pointer;">Off</a></span>Emoticons</h3></div>');
$('#num12345').text("111")
}
if (a !== b) {
turnOn();
console.log("CHANGE")
} else {
turnOn("off");
}
}
}, 200);
问题
正如您在上面的代码中看到的,我运行了 3 个控制台。在控制台中,我预计会出现“已扫描聊天 HTML”警告,然后会出现“已扫描聊天以查找 html 中的更改”。一直按这个顺序。但相反,“聊天 HTML 已被扫描”警告两次,它就像我想象的那样不起作用。
当一条新消息显示它假设记录“更改”但大多数时候它没有,我认为这是 setIntervals 的问题。看来他们的时机不对。但我真的不想说 JavaScript 导致了这个问题,但我不知道还有什么可能。我也在使用 Chrome。