我有一个页面,我想根据一天中的时间显示不同的图像。
我现在如何工作是附加到jquery ready listener我有一个函数,它选择所有图像元素并根据小时更改它们的源。每个img标签都有一个在html中指定的默认src,以防万一用户停用js或其他什么。
然而,使用这种方法,我很偏执,浏览器开始加载默认图像,然后继续加载特定时间的图像,导致不必要的开销。
所以我的问题是这样的:如果我在jquery ready事件中更改了img源,那么在浏览器开始加载图像之前img src是否会被更改。
感谢您的所有回复。如果这是一个重复的问题,我很抱歉,但是关于jquery ready事件的细微差别有一百万个问题。
答案 0 :(得分:2)
我认为就绪监听器会在所有html加载后立即开始运行,这意味着它不会等待bg加载并准备运行。因此,取决于您可以进行默认加载然后切换的时间。
也许你可以省略图像的src或bg的css,只在ready()中添加jquery。
对于禁用js的人,您可以在noscript块中使用默认加载
答案 1 :(得分:2)
当JavaScript提供用于执行代码的load事件时 页面呈现,此事件在所有资产之前都不会被触发 如图像已被完全接收。在大多数情况下, 只要DOM层次结构完全可以运行脚本 构造
因此,一旦代码存在,无论图像的加载状态如何,就绪事件都会开始运行。这意味着图像可能正在显示,也可能没有显示,可能是完全或部分加载,它只取决于图像在接收更改命令之前加载的速度。
如果你想绝对肯定图像永远不会被加载,你会想要做这个服务器端,这样只有你想要的图像被写入代码 - 如果执行中有一些延迟改变,你肯定会看到全部或部分默认图像。