2013-05-28 34 views
0

我正在顯示100個記錄列表以及來自servlet的圖像和圖像。如何在jsp中使用ajax或jQuery進行後臺進程

現在的事情是,我加載圖像供以後使用像poup事情。

那麼,有沒有我可以加載這個圖像作爲背景進程,這一進程不會中斷頁面​​加載任何方式(目前它正在20分鐘到整個頁面加載只是由於圖像的servlet)

任何方式就像使用ajax作爲後臺進程調用,或者使用java一些其他方式。

任何建議,將不勝感激。

謝謝。

+0

它需要20分鐘來加載在瀏覽器或Servlet的圖像(大的內容)不是最佳的,這是一個性能問題? –

回答

0

如果它需要20分鐘,我會親自創建一個用於創建HTML頁面的前一個servlet。 myresult.html如果沒有完成或請求已在處理中,我會返回「正在處理中,請稍候」或類似的東西,當它完成時,我會重定向/加載到新創建的html。

如果你想用JavaScript來使其遵循同樣的理念,而不是返回,你可以返回一個JSON消息,JavaScript變量你有什麼...並與一些週期性前檢查這個消息的消息。 setTimeout(checkMessage,60000);

UPDATE

如果你只需要後主要頁面已經被加載,你可以使用一些JavaScript函數加載圖像時,頁面已經被加載event on load加載一些圖片,或者如果您使用jQuery當頁面是ready,然後加載圖像異步與jquery here或只是用普通的javascript here

我希望這可以幫助。

+0

我已經在頁面加載時放入了「請稍候」類型的消息,但仍然此頁面有時需要更多時間加載,我認爲這只是由於如果我刪除此頁面然後在2分鐘內加載。我只需要加載包含圖像使用後臺進程的div,因爲這個圖像不是直接顯示在頁面上,但我已經把它放在懸停彈出窗口上。 – Sweety

0

我認爲你可以學習與JavaScript的異步編碼。例如,

f1(); // We assume f1() will take a long time and it will block page loading. 
f2(); // And f2() must be execute after f1() 
// Other code here will be blocked by f1() 

我們可以簡單地使用setTimeout()來像這樣異步執行f1()。

function f1(callback){ 
setTimeout(function() { 
    // Here is the work will do in f1() 
    // You can move upper f1() code to here 
    callback(); 
}, 20 * 60 * 1000); 
} 

f1(f2); 
// Other code here without being blocked by f1() 

多個異步編碼提示可以在這裏找到:http://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/

+0

從你的評論,我認爲你可以刪除或者用替代。並且在$(document).ready(function(){/ *替換您的img標籤或更新您的src屬性img tag * /}); @甜 –

0

你的servlet應該只是創造的記錄列表。稍後,您應該使用ajax調用加載圖像。