首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果在ajax调用期间显示警告窗口,会发生什么情况?

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

Stack Overflow用户
提问于 2014-05-22 16:19:03
回答 2查看 3.6K关注 0票数 52

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

例如,假设我有一个ajax调用

代码语言:javascript
复制
$.ajax({
    url: ...,
    type: GET/POST,
    ...
    success: function(data){
        console.log(data);
    },
    error: ...
});

这需要很长时间才能完成(10秒)。在执行调用时,会抛出一个简单的javascript警告。

代码语言:javascript
复制
alert("hello!");

例如,如果:

  1. ajax调用启动
  2. ajax调用获取数据

显示

  1. 警报
  2. ajax调用返回数据(警报窗口仍处于打开状态!)

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

我希望我说得足够清楚,这不是一个“哑巴”问题。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-22 16:25:08

这并不是很难去尝试和理解...但答案是,警报将获得优先级,并阻止执行流程。

关闭警报时,假设AJAX请求在警报打开时已完成,则将处理success函数(或error函数)。

请注意,AJAX请求将在警报显示时继续运行(因此,长时间运行的AJAX可以在警报打开时进行处理),但只是在警报关闭之前,脚本无法继续处理请求。

Here is a working example,请注意,直到警报关闭时,数据才会写入控制台。

另一点需要注意的是,在警报关闭后,脚本将继续处理函数的其余部分(紧接在alert之后的代码),然后再处理AJAX响应。This helps demonstrate what I mean

票数 60
EN

Stack Overflow用户

发布于 2014-05-22 16:26:20

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

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

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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23801386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档