Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否保证在加载所有外部脚本后触发AJAX请求?_Javascript_Ajax - Fatal编程技术网

Javascript 是否保证在加载所有外部脚本后触发AJAX请求?

Javascript 是否保证在加载所有外部脚本后触发AJAX请求?,javascript,ajax,Javascript,Ajax,假设我的HTML页面正在加载多个外部JavaScript文件,每个文件都使用XMLHttpRequest进行异步AJAX调用。是否保证只有在加载所有JavaScript文件后才能启动AJAX请求 我在几个不同的浏览器(Firefox、Chrome、IE11)上做了一个小测试,这似乎是在所有浏览器中实现的方式,但这是由一些标准控制的吗 为了清楚起见,我的意思是当JavaScript文件像这样加载时: <script src="ajax1.js></script> <s

假设我的HTML页面正在加载多个外部JavaScript文件,每个文件都使用
XMLHttpRequest
进行异步AJAX调用。是否保证只有在加载所有JavaScript文件后才能启动AJAX请求

我在几个不同的浏览器(Firefox、Chrome、IE11)上做了一个小测试,这似乎是在所有浏览器中实现的方式,但这是由一些标准控制的吗

为了清楚起见,我的意思是当JavaScript文件像这样加载时:

<script src="ajax1.js></script>
<script src="ajax2.js></script>
..etc..
(function() {
    const xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "data.json", true);
    xmlhttp.onreadystatechange = function () {
        console.log('AJAX HTTP status: ' + xmlhttp.status);
    };
    xmlhttp.send();
})();

一旦
文档
准备就绪,如果您将代码放在下面,它将在以后执行(直到您的脚本中没有
async
属性)Koushik Chatterjee,即使在
标记中有
async
,我观察到JSON调用仅在加载所有脚本之后才开始。然而,我的问题的性质纯粹是学术性和信息性的,不是为了解决我目前面临的问题。话虽如此,我可以想象,在某些情况下,您会希望在加载所有脚本后立即触发AJAX请求,但在DOM完全就绪之前。hmmm,有时您的浏览器可能不支持
async
,可能是ajax调用在脚本下载之前启动,但在脚本下载之后正在解析!