等待从Action页面调用方法

时间:2015-06-03 17:02:39

标签: javascript jquery html jsp

我是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吗?

1 个答案:

答案 0 :(得分:0)

在页面上的Java(服务器端)中执行延迟,即使在scriptlet中,也只会导致将页面发送到客户端浏览器的延迟,这会导致在他们之前长时间停顿接收页面,或(在某些情况下)一个半加载的页面,有一个奇怪的延迟,直到其余的加载。

要延迟在客户端加载某些东西,最好的答案是使用Javascript。鉴于您已对问题进行了标记,我将假设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>