javascript - 预加载/加载大图像的最快方法

标签 javascript jquery css image performance

预加载可能不是正确的术语...

我有一个加载非常大图像的页面。我想等待大图像完全加载,然后再显示在用户的页面上。

目前,我有一个正在加载的 gif,我正在使用 javascript 等待图像加载,然后用图像替换正在加载的 gif src:

<img src="loading.gif" id="image" />
<script>
img = 'very_large_image.jpg';
var newimg = new Image();
newimg.src = img;
newimg.onload = function(){
$('#image').attr('src',img);
}
</script>

我想知道是否有更快的方法来加载此图像,例如纯 CSS 方式或某种强制浏览器首先下载此 Assets 的方式。上面的代码显然是定位在图片期望加载的位置。所以上面和下面都有代码。

我认为的一个 CSS 选项是将图像定位在屏幕之外,并且在加载后执行 src 替换。

我的服务器运行的是 http2,所以它应该很快。我只想知道是否有比我现在正在做的更好的方法来确保以最快的方式为所有主要浏览器加载大图像。

我应该补充一点,我已经对图像文件做了很多优化。我正在使用高分辨率摄影。

谢谢!

最佳答案

您可以使 JPG 渐进,然后让它加载。浏览器将首先模糊地逐步显示图像,然后加载更多细节。

这是最好的方式,因为用户甚至可以在图像完全加载之前看到图像。

编辑: 在 Linux 上使用 jpegtran , 在 Windows 上使用 Photoshop 或 RIOT

关于javascript - 预加载/加载大图像的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35482536/

相关文章:

javascript - AngularJS 指令循环遍历数组

jquery - 使用递增的类名将类应用于类似命名的 div

javascript - 使用远程内容的 jQuery UI 模态对话框表单

javascript - 使用 AJAX 从 PHP 检索数据发送到不同的 PHP 文件

javascript - jQuery SVG,为什么我不能添加类?

css - css 中正确的类继承?

javascript - 如何为PHP Laravel解决“count():参数必须是实现Countable的数组或对象”?

javascript - 经典与原型(prototype)继承

javascript - 为什么我的 Javascript 代码中的随机数是串联而不是相加?

jquery - 在选中的复选框上隐藏表格行