【发布时间】:2012-04-20 16:02:59
【问题描述】:
在Is JavaScript guaranteed to be single-threaded? 很明显,尽管 javascript 是单线程的,但仍有一些注意事项。
我想知道以下伪代码是否总是可预测的(我正在“使用”jQuery)
var lastReq;
$('#button').click(function()
{
if (lastReq) lastReq.abort();
lastReq = $.ajax(...);
});
这种情况可能是在单击事件和中止之间,来自服务器的数据通过并在事件队列中放置了一个事件。如果这发生在中止之前,将触发 ajax post 的 succes 事件。 我不知道如何真正测试这种可能的竞争条件。
有人知道这是如何工作的吗?或者如何用一个准备好的例子来测试这个?
【问题讨论】:
标签: javascript jquery ajax jquery-deferred request-cancelling