Javascript 中的 JSONP:立即删除脚本 DOM 元素

JSONP in Javascript: remove script DOM element immediately

在以下经典函数的 DOM/Javascript 流程中有一些我不明白的地方,该函数动态构建脚本 DOM 元素,以便在此注入的脚本中提供 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 中删除脚本 child。这是否意味着函数在 附加 child 时挂起 ?我觉得不是。所以这意味着 DOM 将排序 remember 删除 child after 它的插入已经完成注入的 HTTP 请求 url.

直觉上,我认为这是 call-back 的工作(call-back 嵌入在本例中的 url 中)以销毁脚本(或计时器 call-back 因为我们无法保证在失败的情况下会调用回调)。

有人可以详细说明 Javascript/DOM 执行流程,证明在 DOM 中删除 'early' child 是合理的吗?

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

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

所以马上添加和删除就可以了。

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