第一次打开页面时图像非常慢 - 如何加载图像
Images very slow when opening page first time - how to load images
我有一个页面,其中着陆页的图像随时间变化(图像逐一变化)。效果很好,但是在上传网站时,我意识到我在着陆页上的图片加载速度非常慢,因此看起来不太好。全部加载完成后(全部至少出现一次),页面又好了,过渡也很顺畅。
我在想办法预加载图片。我找到了很多东西并尝试了以下方法:
$(window).load(function() {
$(".loader").fadeOut("slow"); /*gif that shows when page loads*/
function backgrounds() {
for (i = 0; i < preload.arguments.length; i++) {
images[i] = new Image()
images[i].src = preload.arguments[i]
}
}
})
var backgrounds = new Array(
'url(Images/image_1.jpg)'
, 'url(Images/image_2.jpg)'
);
$(document).ready(function(){
/*I have here other functions as well as the function that changes the images one by one*/
});
没有成功。第一次加载页面时,我遇到了完全相同的问题。照片第一次载入特别慢,还来不及载入就开始换图功能(有办法载入旋转图片的功能来换图)。
由于我是这一切的新手,任何人都可以帮助解决问题的最佳方法,并确保首先完成加载。
非常感谢
您可以使用必要的文件在命名空间中创建一个新的图像对象,浏览器在查找图像时会找到该对象。像这样:
(new Image()).src = "yourImagePath";
这不会将图像放在页面上,但会加载它以备将来使用。
希望对您有所帮助!!
我认为您不应该使用 javascript 来预加载图像,因为 CSS3 有更好的解决方案。这与最近的浏览器兼容。
https://perishablepress.com/preload-images-css3/
例如:
.preload-images {
background: url(image-01.png) no-repeat -9999px -9999px;
background: url(image-01.png) no-repeat -9999px -9999px,
url(image-02.png) no-repeat -9999px -9999px,
url(image-03.png) no-repeat -9999px -9999px,
url(image-04.png) no-repeat -9999px -9999px,
url(image-05.png) no-repeat -9999px -9999px;
}
这是预加载图像的CSS方法。
参考此 link 中已接受的答案:
How to Preload Images without Javascript?
这基本上会在后台加载所有图像,而显示加载 gif 和图像的实际引用将从缓存中加载它。
我有一个页面,其中着陆页的图像随时间变化(图像逐一变化)。效果很好,但是在上传网站时,我意识到我在着陆页上的图片加载速度非常慢,因此看起来不太好。全部加载完成后(全部至少出现一次),页面又好了,过渡也很顺畅。
我在想办法预加载图片。我找到了很多东西并尝试了以下方法:
$(window).load(function() {
$(".loader").fadeOut("slow"); /*gif that shows when page loads*/
function backgrounds() {
for (i = 0; i < preload.arguments.length; i++) {
images[i] = new Image()
images[i].src = preload.arguments[i]
}
}
})
var backgrounds = new Array(
'url(Images/image_1.jpg)'
, 'url(Images/image_2.jpg)'
);
$(document).ready(function(){
/*I have here other functions as well as the function that changes the images one by one*/
});
没有成功。第一次加载页面时,我遇到了完全相同的问题。照片第一次载入特别慢,还来不及载入就开始换图功能(有办法载入旋转图片的功能来换图)。
由于我是这一切的新手,任何人都可以帮助解决问题的最佳方法,并确保首先完成加载。
非常感谢
您可以使用必要的文件在命名空间中创建一个新的图像对象,浏览器在查找图像时会找到该对象。像这样:
(new Image()).src = "yourImagePath";
这不会将图像放在页面上,但会加载它以备将来使用。
希望对您有所帮助!!
我认为您不应该使用 javascript 来预加载图像,因为 CSS3 有更好的解决方案。这与最近的浏览器兼容。
https://perishablepress.com/preload-images-css3/
例如:
.preload-images {
background: url(image-01.png) no-repeat -9999px -9999px;
background: url(image-01.png) no-repeat -9999px -9999px,
url(image-02.png) no-repeat -9999px -9999px,
url(image-03.png) no-repeat -9999px -9999px,
url(image-04.png) no-repeat -9999px -9999px,
url(image-05.png) no-repeat -9999px -9999px;
}
这是预加载图像的CSS方法。
参考此 link 中已接受的答案: How to Preload Images without Javascript?
这基本上会在后台加载所有图像,而显示加载 gif 和图像的实际引用将从缓存中加载它。