javascript - 当 src 被动态重新定义时,浏览器是否应该自动获取图像,w/o ajax?

标签 javascript image http dom

我注意到当动态更改图像源属性时(在我的例子中,使用 jQuery),即使图像从未被浏览器调用/缓存(即未预加载),浏览器仍会获取它——而且没有 ajax。这在所有 5 个主要浏览器(ie7+)中都对我有用。

问题:这是我可以无限期依赖的正式标准化行为吗?

最佳答案

DOM 有两种称为重排和重绘的行为,它们将强制重绘其元素(颜色、大小)。只要 DOM 中的“用于构建渲染树的输入信息”发生变化,就会触发这些行为(这里对所有这些都有很好的描述:Rendering: repaint, reflow/relayout, restyle)

对于你的问题,当这个被触发时,浏览器也会尝试获取src链接,包括javascript;所以我们可以动态插入脚本/样式链接,DOM 将执行它。

这也会影响性能。你可以想象在 CSS 中我们为不同的状态使用不同的图像,例如,当样式背景图像因悬停状态而改变时。如果 DOM 在加载时获取所有图像,则初始渲染时会变慢。所以浏览器被设计成动态加载 src。

关于javascript - 当 src 被动态重新定义时,浏览器是否应该自动获取图像,w/o ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5376186/

相关文章:

javascript - 自动刷新div内容

html - Gmail 阻止电子邮件模板中的小型嵌入式内联图像

java - 编写 java 游戏 - JFrame 未按预期工作

html - 如何在图像显示时显示内容?

javascript - 动态加载不安全的内容以避免对话

javascript - 当用户喜欢帖子时如何动态更新 Flask 模板?

javascript - 匹配两个对象数组之间的特定属性,然后将一个值插入一个对象

javascript - 使用 onChangeText 从 React-native 中的嵌套数组中过滤每个值

http - 无法打开流 : HTTP request failed! HTTP/1.1 400 错误请求

http - YouTube 和 Google 如何访问彼此的 cookie?