在不延迟页面加载的情况下将图像不可见地预加载到 DOM [重复]

Posted

技术标签:

【中文标题】在不延迟页面加载的情况下将图像不可见地预加载到 DOM [重复]【英文标题】:Preload image invisibly into DOM without delaying page load [duplicate] 【发布时间】:2016-06-21 14:08:55 【问题描述】:

这可能是一个没有答案的问题。

我想以一种可以在单击时显示的方式预加载图像,而单击后没有任何加载时间。

但是我也不想增加加载页面的加载时间。所以基本上我正在寻找一种在后台加载图像的方法 onload 事件和之前 用户请求查看图像(on.click)。

【问题讨论】:

这个 dup How do you cache an image in javascript 提供了一个选项,该选项在页面中的其他资源完成加载之前不会开始预加载(以免以任何方式减慢它们的速度)。 【参考方案1】:

页面完全加载后(触发window.onload事件),您可以使用该代码预加载任何图像。

var image = new Image();
image.src = 'http://hostname/path/to/image.png'

此代码放置加载图像并将其放置到浏览器缓存中。

【讨论】:

【参考方案2】:

看看这个,它会在页面加载后异步抓取图片,只在图片完全下载后显示图片元素:

使用此 html

 <img id="theImg">

还有这个 CSS:

 #theImg display:none; 

使用此 JavaScript 以异步加载图像:

 window.addEventListener("load", function()
        setTimeout(loadImg, 0);
 );

 function loadImg()
     var i = document.getElementById("theImg");
     i.src = "your path to src";
     i.addEventListener("load", function() i.style.display= "inline"; );

 

【讨论】:

以上是关于在不延迟页面加载的情况下将图像不可见地预加载到 DOM [重复]的主要内容,如果未能解决你的问题,请参考以下文章

懒加载和预加载

前端系列,懒加载跟预加载

前端系列,懒加载跟预加载

图片懒加载和预加载

有没有办法在不将完整文件加载到内存的情况下将 tiff 图像转换为 Base64

如何在不重新加载页面的情况下将任意 JSON 发送到 node.js?