2015-04-04 61 views
0

我有一个jQuery的代码是这样的:加载图像更快(PHP,JQuery的)

var number_images = 5; 
var ct = 1; 

// Goto previous Picture 
$('#changeImageMinus').on('click', function() 
{ 
    if(ct-1>=1 && ct-1<=number_images) 
    { 
     ct = ct - 1; 
     $('.container-bg').css("background-image","url('images/" + ct + ".png')"); 
    } 
}) 

// Goto next Picture 
$('#changeImagePlus').on('click', function() 
{ 
    if(ct+1>=1 && ct+1<=number_images) 
    { 
     ct = ct + 1; 
     $('.container-bg').css("background-image","url('images/" + ct + ".png')"); 
    } 
}) 

我有一个名为像文件夹images/1.png, 2.png ...图像,所以我只需按加载图像后退/前进一个“+”或一个“ - ”按钮。问题是,加载需要很长时间,我想知道是否有可能将所有图像预加载到缓冲区或类似的东西。我基本上想要在网站开放之前加载所有的图片,这样当我切换它们时,它会显示得更快。非常感谢您提前!

回答

1

你可以通过使用Image类来完成它。创建新的图像对象并将其src属性设置为图片的路径。在打印页面之前为所有图像执行此操作,并且应该预先加载它们。在这article他们描述它(第二种方式)。

只是要小心,因为如果你有很多照片可能会对用户体验产生负面影响,特别是对于连接速度较慢的用户(是的,我存在,例如:D)。想象一下,你需要等待几个(如10或更多)秒来加载页面。在这种情况下,最好的方法是预先加载指定数量的图像,然后根据需要加载剩余的图像。等待的问题可能会再次发生,但至少用户会看到你的网页,而不是寻找其他的一个:)

+0

非常感谢你的快速反应,文章是伟大的,我会考虑等你伤心关于用户体验。非常感谢你,这正是我正在寻找的;) – user3877230 2015-04-04 21:29:36