我有以下JS代碼可能雙擊速度有多快?
$('#dialog').dialog({
...
buttons: {
OK: function() {
callAjax({"some":"param"});
$('#dialog').dialog('close');
}
}
});
var ajaxBatch = [];
function callAjax(cmd) {
ajaxBatch.push(cmd);
if (ajaxBatch.length == 1)
setTimeout(ajaxItself, 1);
}
function ajaxItself() {
ajaxBatch.push({"minor":"data"});
$.post('url', { msg: JSON.stringify(ajaxBatch) });
ajaxBatch = [];
}
理論上我應該總是得到[{"some":"param"},{"minor":"data"}]
。
但是,我經常在錯誤的請求中獲得錯誤日誌條目,其中有[{"some":"param"},{"some":"param"},{"minor":"data"}]
。
這樣的事情可能會發生嗎?用他們的2x按鈕做A4鼠標是否有意義,或者是什麼?
順便說一句,我不能再現這種情況,我只是在日誌中看到它。而且用戶代理不受限於特定的瀏覽器。
A4鼠標? 2個按鈕?咦?超時的目的是什麼?這留下了1ms的窗口,以便註冊其他點擊。 – 2011-12-25 18:17:13
目的是在一個查詢中收集多個命令。但是帶有事件生成按鈕的對話框將在第一個'push()'之後被關閉。 – 2011-12-25 18:21:48
那麼爲什麼1ms超時?如果你想註冊多個按鈕,1ms的窗口非常短。 – 2011-12-25 18:22:36