如果在ajax调用期间显示警告窗口,会发生什么情况?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (39)

我只是想知道如果在执行ajax调用时会在浏览器窗口中向用户提示警报,会发生什么情况。

比方说,我有一个Ajax调用:

$.ajax({
    url: ...,
    type: GET/POST,
    ...
    success: function(data){
        console.log(data);
    },
    error: ...
});

需要很长时间才能完成(10秒)。调用执行时,会引发一个简单的javascript警报:

alert("hello!");

例如,如果发生以下情况:

  1. ajax呼叫开始
  2. ajax调用读取数据
  3. 显示警报
  4. ajax调用返回数据(警报窗口仍然打开!)

知道JS是单线程的我知道脚本执行会停止,我只是想知道如果警报窗口没有及时关闭,那么ajax调用/响应会发生什么?

提问于
用户回答回答于

在关闭警报后,假设在警报打开时AJAX请求已完成,则该success功能将被处理(或error功能)。

请注意,显示警报时AJAX请求将继续运行,但只是在警报关闭之前脚本无法继续处理请求。

用户回答回答于

HTTP请求将继续运行并在后台处理。

当JS事件循环变为空闲时,readystatechange处理程序将触发。

一些中间就绪状态可能会被跳过,因为事件循环在该状态为真时处于忙碌状态。

扫码关注云+社区

领取腾讯云代金券