これは何ですか
Campfire Chat Serviceには絵文字機能がないため、現在、絵文字のスクリプトを作成しています。現在、チャットに新しいメッセージがあるかどうかを200ミリ秒ごとにチェックすることになっているsetIntervalを使用しているため、絵文字の実行は非常に遅くなっています。これを行うには、で2つの変数「a」と「b」を作成しvar a,b;
ます。したがって、最初のsetIntervalで、150ミリ秒の時間を計測します。この中で、変数「a」にチャットのHTMLの値を指定します。次に、2番目のsetInterval(200)で、変数「b」にHTMLの値も指定しますが、これはタイミングが異なるため、HTMLをチェックします。if
ステートメントとそれが異なる場合は、シンボルを絵文字に変更する関数を実行します。これはパフォーマンスを向上させるためでした。Campfire Chatの誰も実際に何かを書いていなくても、絵文字をチェックする前に、絵文字をチェックする必要はありません。
これは完全な機能です:
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がスキャンされました」という警告が2回表示され、私がイメージしたように機能しません。
そして、新しいメッセージが「変更」をログに記録することを想定していることを示しているが、ほとんどの場合、ログに記録されていない場合、それはsetIntervalsの問題だと思います。タイミングが合っていないようです。しかし、JavaScriptがこの問題を引き起こしているとは言いたくありませんが、他に何ができるのかわかりません。また、私はChromeを使用しています。