gpt4 book ai didi

javascript - Javascript 中的 JSONP : remove script DOM element immediately

转载 作者:行者123 更新时间:2023-11-30 16:17:13 26 4
gpt4 key购买 nike

以下经典函数中的 DOM/Javascript 流程中有一些我不明白的地方,它动态构建脚本 DOM 元素,以便在此注入(inject)的脚本中提供 JSONP 请求:

function requestServerCall(url) { //Construct the script tag at Runtime  
var head = document.head;
var script = document.createElement("script");
script.setAttribute("src", url);
head.appendChild(script);
head.removeChild(script); // remove the script tag once inserted to avoid memory consumption
}

我没有得到的是:此函数会立即从 DOM 中删除脚本子项。这是否意味着函数在 追加子项时挂起?我想不是。因此,这意味着 DOM 会在某种程度上记住在通过注入(inject) url 的 HTTP 请求完成插入后删除子项。

直觉上,我认为这是回调的工作(在这个例子中嵌入在 url 中的回调)来破坏脚本(或者定时器回调,因为我们不能保证回调会被调用失败的情况)。

有人可以详细说明 Javascript/DOM 执行流程,证明在 DOM 中“提前”删除子项是合理的吗?

最佳答案

script 元素添加到 DOM 会立即告诉浏览器获取脚本,并在获取脚本后执行它。 appendChild 不会在发生这种情况时阻塞。

浏览器不会“记住”稍后执行 removeChild,它会立即执行。但是从 DOM 中移除 script 元素并不会停止获取和运行脚本的过程;已经开始了。

所以立即添加和删除是可以的。

有点偏执,我总是在我的目标浏览器上进行测试,以防出现奇怪的实现。

关于javascript - Javascript 中的 JSONP : remove script DOM element immediately,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35309897/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com