我是JSP世界的新手。
我有这个Web应用程序调用下面的页面result.jsp
页面。
在表单上提交后调用此页面,操作类从createImage
方法生成图像,由dispatchParam
调用。
实际的代码部分是:
<div id="container_imagem_resultado">
<p>
<img src="<%=pathBase%>access.do?dispatchParam=createImage&time="new Date().getTime();>
</div>
我需要创建一些触发器,以便在调用img
标记之前页面等待1秒。
我该怎么办?
有没有办法在1s等待之后将标签插入HTML响应页面?会在<%Thread.sleep(1000);%>
代码工作之前添加img
吗?
答案 0 :(得分:0)
在页面上的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秒后加载图像的另一个原因是,您应该将其降低很多,否则它可能会被视为一个破碎的窗口。 / p>