Javascript “为什么?”;新图像();立即触发网络请求,但;createElement(“脚本”);不是吗?

Javascript “为什么?”;新图像();立即触发网络请求,但;createElement(“脚本”);不是吗?,javascript,html,Javascript,Html,我使用newimage()创建一个新的图像元素。当我设置'src'属性时,将立即触发网络请求。为什么?有什么文件可以解释吗 下列情况: 案例1: 案例2: 在案例1和案例2中,将立即触发网络请求 在案例3中,如果我不将脚本元素附加到主体中,则不会触发任何网络请求 为什么?我不确定这是否有帮助,中的步骤24解释了脚本标记的src行为,用户代理(浏览器)必须遵循该行为: 出于性能原因,用户代理可能会开始获取经典 一旦src属性 而是设置为希望将元素插入到 文档(以及跨原点属性)不会更改中的值 同时)

我使用
newimage()
创建一个新的图像元素。当我设置'src'属性时,将立即触发网络请求。为什么?有什么文件可以解释吗

下列情况:

案例1:

案例2:

在案例1和案例2中,将立即触发网络请求

在案例3中,如果我不将脚本元素附加到主体中,则不会触发任何网络请求


为什么?

我不确定这是否有帮助,中的步骤24解释了
脚本
标记的
src
行为,用户代理(浏览器)必须遵循该行为:

出于性能原因,用户代理可能会开始获取经典 一旦src属性 而是设置为希望将元素插入到 文档(以及跨原点属性)不会更改中的值 同时)

无论哪种方式,只要将元素插入到 文档中,加载必须已按此步骤中所述启动如果 UA执行这样的预取,但元素从未插入到 文档或src属性动态更改,或 动态更改crossorigin属性,则用户代理将 不执行这样获得的脚本,获取过程将 被有效地浪费了。


说明即使图像元素不在DOM中,也需要如何以及何时加载图像资源:

立即获取图像的用户代理必须同步更新 设置了重新启动动画标志的img元素的图像数据 如有说明,无论何时创建或经历该元素 相关突变

按需获取图像的用户代理必须更新图像数据 img元素在需要图像数据时(即,按需), 但仅当img元素的当前请求状态不可用时。 当img元素经历了相关突变时,如果用户 代理仅按需获取图像,img元素的当前 请求的状态必须返回到“不可用”


关于img的进一步信息元素:

img元件的相关突变如下所示:

  • 设置、更改或删除元素的src、srcset、width或size属性。

  • 元素的src属性设置为与上一个值相同的值。这必须为更新图像数据算法设置重新启动动画标志。

  • 元素的
    crossorigin
    属性的状态已更改

  • 元素插入到图片父元素中或从图片父元素中移除

  • 元素的父元素是图片元素,源元素作为前一个同级元素插入

  • 元素的父元素是picture元素,而先前同级的源元素将被删除

  • 元素的父元素是picture元素,而作为前一个同级元素的源元素具有其
    srcset
    、大小、媒体或类型属性 设置、更改或删除

  • 运行元素的采用步骤

var img = new Image();
img.src = 'http://someurl.png';
var imgStr = '<img src="http://someurl.png">';
var div = document.createElement('div');
div.innerHTML = imgStr;
var script = document.createElement('script');
script.src = 'http://someurl.js';
// document.body.appendChild(script);