2011-12-22 40 views
2

這在C#正在做,asp.net 4.0,MVC3剃刀標籤MVC3預加載許多圖像鑑於

我有各有多達9張照片的相冊。圖片保存在文件系統中,並由數據庫管理。我可以在我的控制器中構建整個對象,並將其傳遞到具有專輯所有數據庫信息的視圖中。然而,在初始頁面加載時,可能會預加載數百個圖像(這是在視圖中完成的,而不是在控制器中完成的) - 即使這意味着所有圖像都會立即呈現。我的頁面設計有一個滑動的圖像窗口,然後根據滑動窗口中的選擇在頁面中顯示較低的相冊。

a)何時應該預加載或緩存這些圖像?

b)我應該使用JavaScript預加載還是應該使用MVC3的一些結構預加載/緩存圖像?

我將要做的是在滑動窗口移動到新專輯時以及動畫期間我將預加載專輯圖像的動畫,但我願意接受替代方案或建議以及會非常感激任何想法。

謝謝

回答

3

我建議下去的JS路徑,這樣會使你的整個頁面加載,然後就可以觸發圖像的加載,使得頁面仍然是有用的,而他們正在加載。

你可以爲你的圖像做這樣的事情,你可以用加載gif的鏈接替換#。

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

,然後在JQuery中一旦頁面加載完成

$( 'IMG')。每個(函數(){$(本).attr( 'src' 中, $(這個).attr('delayed'));});

這將交換延遲的圖像路徑到src並導致圖像被加載。

有一個jQuery插件來做到這一點,但最後一次看起來它被打破。

編輯:looks like it has been updated

+0

我結束了去JS的路線,但更多的是重新發明車輪策略。老實說,那些其他車輪不適合我的輪胎。 – 2011-12-28 20:32:13