在頁面上執行Java(服務器端)延遲(即使在scriptlet中)只會導致將頁面發送到客戶端瀏覽器的延遲,這會導致頁面在收到頁面之前長時間停頓,或者(在某些情況下)具有奇數延遲的半載頁面,直到其餘的被加載。
要延遲在客戶端加載某些東西,最好的答案就是使用Javascript。鑑於你已經標記了jquery這個問題,我將假設jQuery是一個可用的選項。
爲此,this answer給出了在這裏做什麼一個合理的例子:
// jQuery construct; calls this function after the page is ready.
$(document).ready(function() {
// Create the function which loads the image.
function showImage() {
// Gets a handle for the container div, and replaces its HTML contents.
// Not the most elegant, but it works.
$("#container_imagem_resultado").html('<p><img src="<%=pathBase%>access.do?dispatchParam=createImage&time=' + new Date().getTime() + '" /></p>');
}
// Schedule it after 1 second (1000ms).
setTimeout(showImage, 1000);
});
和HTML:
<div id="container_imagem_resultado">
<p>
<!-- TODO placeholder -->
</p>
</div>
作爲一個方面說明,是不是1秒有點長加載延遲?除非你打算在圖像加載時出現明顯的延遲,或者在1秒後加載圖像還有另一個原因,否則應該降低很多,否則可能會出現破碎的窗口。
當然不是,'Thread.sleep'運行在* server *端。使用JS超時並在觸發時設置源屬性。 –
謝謝,我明白這個主意。但是,我可以在頁面中做到這一點嗎?我在互聯網上看到過一些'''timeout'''的例子,但是不知道在我的情況下做什麼。 – igorfeiden
通過編寫javascript -I不知道還有什麼要告訴你,你熟悉JavaScript嗎? –