1

我有一个页面,我想根据一天中的时间显示不同的图像。

我现在的工作方式是附加到 jquery 就绪的侦听器,我有一个函数可以选择所有图像元素并根据小时更改它们的源。每个 img 标签都有一个在 html 中指定的默认 src,以防万一用户停用了 js 或其他什么。

然而,使用这种方法,我很怀疑浏览器开始加载默认图像,然后继续加载特定时间的图像,从而导致不必要的开销。

所以我的问题是:如果我在 jquery 就绪事件中更改 img 源,在浏览器开始加载图像之前是否会更改 img src。

感谢您的所有回复。如果这是一个重复的问题,我深表歉意,但是关于 jquery 就绪事件的细微差别有一百万个问题。

4

2 回答 2

2

我认为准备就绪的侦听器会在所有 html 加载后立即开始运行,这意味着它不会等待 bg 加载并且准备运行。因此,取决于时间,您可以先进行默认加载,然后再进行切换。

也许您可以省略图像的 src 或 bg 的 css,只在 ready() 中使用 jquery 添加它。

对于禁用 js 的人,您可以在 noscript 块中进行默认加载

于 2012-05-11T15:12:38.937 回答
2

您可以在jQuery 的文档中找到正确的答案:

虽然 JavaScript 在页面呈现时提供了用于执行代码的加载事件,但在完全接收到所有资产(例如图像)之前,不会触发此事件。在大多数情况下,只要完全构建了 DOM 层次结构,就可以运行脚本。

因此,一旦代码在那里,无论图像的加载状态如何,就绪事件都会开始运行。这意味着图像可能会显示也可能不会显示,可能会完全或部分加载,这仅取决于在接收到更改图像的命令之前图像加载的速度。

如果您想绝对肯定图像永远不会加载,您会希望在服务器端执行此操作,以便只有您想要的图像被写入代码 - 如果执行更改有一些延迟,您肯定会看到全部或部分默认图像。

于 2012-05-11T15:18:43.627 回答