jquery文件准备好的监听器与图像加载;执行顺序

时间:2012-05-11 14:58:10

标签: javascript jquery html image order-of-execution

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

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

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

所以我的问题是这样的:如果我在jquery ready事件中更改了img源,那么在浏览器开始加载图像之前img src是否会被更改。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:2)

您可以在jQuery's documentation

中找到此权利的答案
  

当JavaScript提供用于执行代码的load事件时   页面呈现,此事件在所有资产之前都不会被触发   如图像已被完全接收。在大多数情况下,   只要DOM层次结构完全可以运行脚本   构造

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

如果你想绝对肯定图像永远不会被加载,你会想要做这个服务器端,这样只有你想要的图像被写入代码 - 如果执行中有一些延迟改变,你肯定会看到全部或部分默认图像。