2010-07-30 78 views
1

我有一个很长的加载时间(如2分钟)的ASP.NET(C#)页面。用户会看到一个小动画和一个“请稍候”的消息。如果用户意外加载此页面,则需要等待加载。如何在请求发送后停止加载页面?

我的问题是:有没有办法停止页面加载?

谢谢

+0

目前数据加载如何? Ajax还是仅仅通过主页面请求?你想要取消什么?只需停止负载或做一个重定向或使屏幕做一些不同的事情? – Chris 2010-07-30 15:28:57

+0

我不使用AJAX。 我想要做的是发出停止加载命令到服务器,使其停止渲染页面,因为大页面渲染似乎减慢了其他使用系统的人。 – Olivier 2010-07-30 15:30:04

回答

4

如果你想停止服务器端处理,那么它是一个棘手的操作。一般情况下,一旦发出请求,该页面将独立呈现其他行星正在进行的独立行为。您可能需要做的是重新设计该页面,以定期检查停止命令是否已发出,并中止当前正在执行的任何操作。停止标志可以放入会话中,应在停止后清除。

您可能还需要考虑如何正确识别正确的停车位(如果有多个车辆正在运行)。这可以通过返回可用于部分调用“abort”页面的唯一ID来完成。

虽然我的做法并非如此简单,但还是要努力阻止用户发生这种事故。可能做任何他们点击的链接弹出一个警告说:“下面的页面将需要几分钟渲染,你是否希望继续”,然后希望你有效地中止页面请求之前,它甚至作出。

我应该注意,我从来没有尝试过这样做过,所以可能有更简单的方法来做到这一点,但这是我可能会认为abotu解决问题的方式。

+0

你的想法看起来不错。我会试一试 – Olivier 2010-07-30 15:43:17

0

在JavaScript中尝试window.stop()

+0

我试过了,它不会停止渲染页面 – Olivier 2010-07-30 15:34:42

+0

你在IE吗?试试这个:'document.execCommand('Stop')'。不是很漂亮,但如果这样做,你可能需要在不同的浏览器中支持这两个命令。 – 2010-07-30 15:39:50

+2

如果你看看我对这个问题的评论的回复,这不是完全需要的。 Galael提供了一种停止服务器处理的方法,这是一种纯粹的JS解决方案,我不会认为它会发生。 – Chris 2010-07-30 15:41:24