推迟回发3秒钟?

时间:2009-07-31 15:09:54

标签: asp.net postback

我有一个带有几个下拉列表和一个按钮的usercontrol,我希望用户点击按钮(哪个response.redirects取决于DDL中的选择)。

现在不是直接重定向,而是想显示一个小的加载图标3秒,然后重定向......有没有人做过这样的事情?

5 个答案:

答案 0 :(得分:3)

没有人需要的人为延迟是有点蹩脚的。你可以做的是提交你的表格显示你的悸动。我在文档上传表单中使用以下内容,其中发布了大型媒体文件。

<script type="text/javascript" id="PreJavaScript">
    function NUsubmit(){
        document.getElementById("uploadFormInputs").style.display = 'none';
        document.getElementById("progressBar").style.display = 'block';
        return true;
    };
    function init() { document.getElementById("UploadFormObject").onsubmit = NUsubmit; };               

    window.onload = init;
</script>

如果我没记错的话,在IE的某些版本中,动画gif没有播放,但它在IE6 +和FireFox中运行良好。

这样一来,如果回发很快,他们永远不会看到悸动,但如果需要一段时间,他们就会看到它,这让他们感觉到某些事情正在发生。

答案 1 :(得分:1)

您可以使用javascript中的setTimeout()函数执行延迟。

setTimeout(function() { alert('After 5 seconds.'); }, 5000);

答案 2 :(得分:0)

您可能需要在Javascript中覆盖一些内容并使用“setTimeout”来延迟加载。

<script type="text/javascript" >
    var __handleSubmit = theForm.submit;
    theForm.onsubmit = function() {
        alert('loading'); //Show your message here
        window.setTimeout(function() {
            __handleSubmit();
        }, 3000);
    }
</script>

你可能想要多玩一点......这可能不适用于所有实例,因为我从未这样做过。

如果延迟仅仅是为了“美学”,为了让它显得有效,那么我建议不要这样做 - 程序员似乎是唯一认为加载条很酷的人:)

答案 3 :(得分:0)

看起来您应该使用AJAX实现此页面。您可以在页面上放置进度指示器,以提醒用户正在进行长时间运行。

答案 4 :(得分:0)

我使用

来完成这项工作
System.Threading.Thread.Sleep(4000);

在回发中