0
我有一個代碼。jquery不要在同一時間運行兩次相同的函數
setInterval(somefunc, 1000);
function somefunc() {
curid = $(".chat-message:last").attr("id");
$.post("http://blah.com/blah.php&last_msg_id=" + curid, function (data) {
$('.chat-messages').append(data);
});
}
function saveChat() {
var texts = $('#chatText').val();
var request = $.ajax({
type: "POST",
url: "http://blah.com/submit.php",
data: {
text: texts
},
dataType: "html"
});
request.done(function (msg) {
somefunc();
});
}
的問題是,有時saveChat是在相同的時間間隔執行,並且信息somefunc追加到.chat的消息副本。我怎麼能避免它?我需要一個函數,只有當以前的somefunc()執行完成時才允許再次執行函數somefunc()。或者只是不允許同時執行兩次函數somefunc()。
我認爲這將是最好重新考慮你的概念。 – kidwon 2013-02-08 16:49:04
在javascript中,同時沒有任何事情發生,它是單線程的。 – 2013-02-08 16:52:10
但jquery的速度不夠快,無法在somefunc重新啓動之前追加數據。 – 2013-02-09 09:20:13