JavaScript 事件循环与主代码关系

KyL:例子:

<script type="text/javascript"> 
    $.ajax('url', function(data) { 
        console.info('callback'); 
        }); 

    //do something 
    console.info('done'); 
</script> 

如果注释的 do something 占用了很长时间,超过了 ajax 返回的时间,那么显示结果有没有可能是

callback
done

?

JS 中注册的回调函数,当对应的事件发生时,都会被添加到事件队列中,由事件循环不停轮询。那么<script/>中的"主代码",和事件循环的时间轴关系是怎样的?是"主代码"执行完成后,才会进入事件循环,还是当事件循环中获取一个事件后,就会中断主代码的执行?

des:不可能,不会是中断的

ysc3839:个人猜测,只有在当前的 script 代码块执行完后才会去处理在队列中的事件。
仅仅为猜测,我没有做过任何测试。

ayase252:有一个任务队列,当请求回来的时候回调函数会被压入到任务队列里。等到当前执行栈为空时,才会到任务队列里取函数执行。

Javascript 一句话获得农历

est:今天看到有人说 Intl 这个 ECMAscript 内置对象,就翻了一下,发现可以一句话算农历。 new Date().toLocaleString('zh-CN-u-ca-chinese').replace(/(\d+)年 /, (_,y)=>"甲乙丙丁戊己庚辛壬癸".charAt((y-4)%10) + "子丑寅卯辰巳午未申酉戌亥".ch…

javascript popupwindow之后的行如何工作? - javascript

好的,我有一个来自后面代码的方法,可以创建一个popupwindow。然后有一行代码要在那之后执行,我想知道那行代码何时执行,是在使用popupwindow之后执行还是在创建popupwindow之后执行?例如:void exPopupWindowMethod() { string scr = "window.open('exampleP…

剃刀付款集成->如何通过关闭按钮X检测剃刀付款模型是否关闭 - javascript

当用户关闭而无需付款时,我在CI框架中使用Razorpay,请创建razor支付模型,然后取消订单,我希望按状态更改为已取消的状态触发查询。所以我怎么能检测到这一点。我已经通过单击jQuery单击关闭功能但无法使用... javascript大神给出的解决方案 Razorpay提供了JS方法来检测模式关闭。您编写的任何JS代码都不会在结帐页面上运行,因为它是…

Javascript-Urls的奇怪字符串比较行为 - javascript

最近,在编写我无法理解的javascript时遇到了字符串比较的问题。我从完全相同的网址创建了两个字符串,当我比较它们时返回false,但是在重新分配相同的字符串后,比较返回true。这是我的示例:var str1 = "http://google.com/"; var str2 = "http://google.com‏/&#…

Javascript:为什么“.deletebutton”的点击事件未触发 - javascript

这是我的代码: ojit_pre 但是当我按下“ a.deletebutton”时,没有确认对话框出现。它只是继续并从数据库中删除我的数据。似乎“ a.deletebutton”的javascript click事件不起作用。任何想法吗? 参考方案 因为它是动态生成的..您需要将事件委托给它$('body').delegate('…