Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 加载大量图像_Javascript_Jquery_Performance_Preloader - Fatal编程技术网

Javascript 加载大量图像

Javascript 加载大量图像,javascript,jquery,performance,preloader,Javascript,Jquery,Performance,Preloader,我正在开发一个允许用户查看和配置产品的网站。 我想使用jquery、css3和html5启动这个项目,并对旧浏览器进行适当的降级 我将所有最小的图像组合在几个精灵中,以减少http请求的数量(这些图像将从一个无cookieless子域提供)。 顺便说一句,对于每种配置组合,产品必须能够360°查看。 这将生成2252个图像(总计15mb) 这对bandwitdh来说不是什么大问题,因为我们有2台专用服务器,但我正在考虑改善用户体验的最佳方法 实际上,我只预加载默认产品视图的图像,然后当用户更改设

我正在开发一个允许用户查看和配置产品的网站。 我想使用jquery、css3和html5启动这个项目,并对旧浏览器进行适当的降级

我将所有最小的图像组合在几个精灵中,以减少http请求的数量(这些图像将从一个无cookieless子域提供)。 顺便说一句,对于每种配置组合,产品必须能够360°查看。 这将生成2252个图像(总计15mb)

这对bandwitdh来说不是什么大问题,因为我们有2台专用服务器,但我正在考虑改善用户体验的最佳方法

实际上,我只预加载默认产品视图的图像,然后当用户更改设置时,我加载所需的图像(jQuery在这里提供帮助)。当图像加载时,用户将使用“加载”gif。当它不请求图像时,我是否也应该预加载它们

图像将由浏览器缓存,因此每个图像都是一个未修改的响应。 您对改善用户体验有什么建议吗


谢谢。

如果每个产品都有2252张图片,并且预加载了一张,那么开始预加载其他图片似乎有点徒劳。大概观众会改变他的选择,你需要2252张图片中的另一张。这是一个非常低的可能性,你会有一个图像预加载

如果存在比其他属性更常见的各种“属性”,您可能希望预加载一些?例如,(我不知道你的产品是什么),如果你有一件红色衬衫和一件粉色格子XXXL衬衫,你可能想先预装一件红色的;)


在这种情况下,我要做的一件事是在jQuery中播放动画效果(淡入淡出、滑动等)。您可以在属性更改时淡出。该动画可能需要600毫秒,这将是从服务器获取该图像所需的大量时间。结果是新视图/属性的等待时间缩短了。

为来自类似amazon s3的CDN的图像提供服务可能会稍微缩短加载时间。至于分步预加载-这可能取决于产品。有些东西更可能是旋转的-例如,一辆汽车在landon所说的上面。就我个人而言,我不会费心旋转t恤,但可能是一辆汽车。因此,这个决定可能是基于您网站的预期使用情况。

好主意:)也许我应该像您一样使用效果。感谢分享这一点,特别是第一部分对我来说非常重要,我需要记住,以便将来评估我是否应该预加载所有内容。我也在考虑依赖CDN,但系统工程师阻止了我,他确信我们的性能会很好。我们的系统性能可能会很好,但是cdn的优势超过了第一眼的评估。例如,我们的edgecast cdn被委托给5台不同的服务器,最大限度地增加了同时提供的连接和映像的数量,大大减少了加载时间。此外,它是区域性的,因此海外用户分布均匀。因此,我们通过引用cdn服务器序列来旋转每个映像调用:,等等,cdn应该为您提供的另一件事是减少延迟,因为CND框位于网络边缘,并且地理位置分散。另一件值得做的事情是正确设置缓存头,以避免浏览器在请求后进行修改并取回缓存头