这主要是一个理论问题,我确实有一个实际目的。在深入实践之前,我首先会寻找一些概念性的答案,因为这个想法本身可能没有意义。
想象一个完全基于 javascript 的幻灯片。用户在他们的屏幕上看到一个大图像,然后单击以移动到下一个大图像。单击后,下一个图像被加载并插入到 DOM 中,替换前一个图像。
我最近了解到,预取指令可以帮助加快下一个很有可能使用的资源的加载速度。请注意,我说的是资源,而不是页面。幻灯片是单页。
在图像幻灯片中,很明显很可能需要下一张图像,因此如果图像 1 在屏幕上,我可以将其动态添加到 DOM:
<link rel="prefetch" href="http://img.mysite.com/img2.jpg">
我对这个想法的问题:
我进行了大量搜索,但无法找到有关动态注入(inject)预取提示的这种特定情况的答案。
最佳答案
onload
总是被触发,即使图像来自缓存。您不必担心时间影响或竞争条件,任何此类行为都将是浏览器错误。
正如评论中提到的,rel=prefetch
并不是实现预取的唯一方法。即使动态插入到 DOM 中,它也能工作。毕竟,您可以在没有 prefetch
属性的情况下获取图像并将其隐藏。
关于javascript - 使用 DOM 注入(inject)动态预取资源是否有效或有意义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25514725/