我有一个带有几个下拉列表和一个按钮的usercontrol,我希望用户点击按钮(哪个response.redirects取决于DDL中的选择)。
现在不是直接重定向,而是想显示一个小的加载图标3秒,然后重定向......有没有人做过这样的事情?
答案 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);
在回发中