在等待时显示加载内容/图像

时间:2011-07-05 07:43:16

标签: javascript asp-classic

我有一个ASP页面可以进行一些后端处理。它调用一个存储过程,如果进程完成,它将返回一个状态值。整个处理时间可以持续大约10-30秒,具体取决于输入数据的数量。

在这段时间里,我想显示加载图片或文本要比空白页面好得多。至少以这种方式,用户知道她的请求正在被处理,只需要等待它完成。

我不确定如何使用经典ASP实现这一点。有任何想法吗?

非常感谢。

编辑:

嗯,我想我之前没有解释清楚。这里的实际情况是:

我有2个asp页面, A.asp B.asp 。用户单击A.asp上的按钮,它将向B.asp提交表单, B.asp 是将调用后端存储过程的处理页面。当B.asp完成处理后,它会将用户重定向到另一个页面。

所以我遇到的问题是,每当用户点击A.asp的按钮并进入B.asp时,只有一个空白页面,即使我已经有一个HTML代码(显示加载图像)放在最开头B.asp(连接数据库的asp代码如下)。我不知道为什么它在加载时不显示图像。

4 个答案:

答案 0 :(得分:3)

我一直在使用的解决方案的一部分应该让你入门 -

<强> CSS

#loading {
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    position: fixed;
    display: block;
    opacity: 0.7;
    background-color: #000;
    z-index: 99;
    text-align: center;
}


<强> HTML

<div id="loading">
    <img id="loading-image" src="images/ajax-loader.gif" alt="Loading..." />
</div>


<强>的JavaScript

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
    $(window).load(function() {
        $('#loading').hide();
    });
</script>


在我的示例中,我使用了jQuery 1.4.4,但最新版本也可以使用。

答案 1 :(得分:2)

如前所述,我建议使用Ajax进行调查。然后,您可以更好地控制流量以及用户看到的内容。

但是 - 如果你真的想坚持使用经典ASP,一种方法是使用Response.Write调用呈现“加载页面”消息,并在加载整个页面之前调用Response.Flush进行输出。

答案 2 :(得分:1)

当您说显示加载消息时,我会解释您正在使用ajax。在ajax start中,您可以显示该图像,在ajax完全回调中,您可以隐藏加载图像。如果可能,请提供一些代码示例。

如果是jQuery ajax,你可以使用:

$('#loaderImage').show();
$.ajax({
    // Other ajax parameters
    success: function () {
       // hiding the image here
       $('#loaderImage').hide();
    }
});

答案 3 :(得分:0)

我有类似的情景;我通过将工作分成两部分来处理它,并将所有耗时的工作放在每分钟触发的计划任务(只是一个WSC文件)中。我也可以创建一个服务,但这也很有用。

我的ASP文件创建了初始记录,有效地排队完成计划任务的工作并完成繁重工作。我的预定任务也是'自我意识';如果最后一个在下一个触发时仍然在运行,它就会自行终止并等待原件完成。这样就没有重复处理的可能性了。

结果是服务器上的负载下降到接近零,即使有数百个同时请求,并且最终用户得到即时反馈,告诉他们在处理订单时会收到电子邮件确认,带有“确认”ID(来自初始记录创建的身份),因此在出现任何问题时,每个人都有一个参考点。