MVC3在视图中预加载许多图像

时间:2011-12-22 20:22:03

标签: c# javascript asp.net-mvc asp.net-mvc-3 razor

这是在C#,asp.net 4.0,带有剃刀标签的MVC3中完成的

我的相册每张最多有9张照片。图片保存在文件系统中并由数据库管理。我可以在我的控制器中构建整个对象并将其传递到视图中,该视图包含相册的所有数据库信息。但是,预加载潜在的数百张图像(这在视图中完成,而不是控制器)可能会在初始页面加载时非常密集 - 即使这意味着所有图像都会立即呈现。我的页面设计是这样的,有一个图像的滑动窗口,然后根据滑动窗口中的选择在页面下方显示相册。

a)我应该何时预加载或缓存这些图像?

b)我应该使用javascript预加载还是应该使用MVC3的某种结构来预加载/缓存图像?

我要做的是在将滑动窗口移动到新专辑时制作动画,并且在动画期间我将预先加载专辑的图像,但我愿意接受替代或建议非常感谢任何想法。

谢谢

1 个答案:

答案 0 :(得分:3)

我建议沿着JS路径走下去,这样可以加载整个页面,然后你可以触发加载图像,这样页面在加载时仍然有用。

你可以为你的图像做一些这样的事情,你可以用#替换加载gif的链接。

<img src="#" delayed="http://mydomain.com/myimage.png"/ >

然后在页面完成加载后在JQuery中加载

  

$('img')。each(function(){$(this).attr('src',   $(本).attr( '延迟')); });

这会将延迟的图像路径交换到src中并导致图像被加载。

有一个jquery插件可以在某个时刻执行此操作,但上次我看起来已经坏了。

编辑:looks like it has been updated