我正在整理一个图库页面,其中的图片显示在fancyBox中。实际的图像是大文件,所以我运行一个PHP脚本来重新调整服务器端的原始图像文件的大小,并为fancyBox输出一个更小,更轻的版本。这样做的结果意味着图像的URL有一个像“/images/photo.php?image=001.jpg”。
这样做意味着 fancyBox必须被强制进入图像模式,因为它通常需要一个.jpg文件,但它会获得一个.php脚本。这种方法效果很好,但确实导致fancyBox不再预加载下一张和上一张图像的问题。我的初始计划是使用更小/更轻/更快的加载图像,因为重新调整图像大小的PHP脚本需要一些时间,并且在点击下一个和实际显示的新图像之间会产生恼人的延迟。能够预加载下一个/上一个可以帮助很多事情。
有没有人知道是否可以强制fancyBox预加载下一个图像而不管它指向的文件类型是什么?
作为旁注,没有运行服务器端脚本来重新调整图像大小会导致fancyBox和一些浏览器放弃加载图像并快速耗尽大量内存...每个图像大约2MB之前重新调整大小。
任何建议表示赞赏。
答案 0 :(得分:0)
试试这个:
$(".fancybox").fancybox({
type: 'image'
});
默认情况下,Fancybox会猜测网址的内容。使用type
答案 1 :(得分:0)
我相信这是浏览器特定的问题。我正在处理完全相同的事情(通过带预加载的灯箱的php动态调整器)并发现虽然动态图像是按预期预加载的,但Chrome坚持在显示它们时再次加载它们。预加载在Firefox上运行良好。我猜这与Chrome检测到内容是动态的有关,但我没有进一步调试。
由于我在动态调整大量图片时遇到了同样的内存问题,因此我切换到将图片大小调整为磁盘并使用我的主php文件中的函数直接提供链接到磁盘上已调整大小的图像的链接。这意味着Chrome开始正确处理预加载。