C# 如何通过一个按钮点击事件来停止代码隐藏中关于用户意图或方法的ajax请求?

C# 如何通过一个按钮点击事件来停止代码隐藏中关于用户意图或方法的ajax请求?,c#,javascript,asp.net,ajax,C#,Javascript,Asp.net,Ajax,实际上,我正在从DB获取一个数据集,但它有时会消耗(>1分钟) 因此,我使用ajax异步运行,以检查数据集是否返回了结果,同时显示等待的页面 但是,有时,如果用户希望导航到其他页面而不是等待返回的结果,是否有人可以提供 给我一个这样做的提示?我会首先尝试从数据库优化您的查询。任何运行时间超过1分钟的查询都是非常大的(您可以通过实现分页来避免)。。。或者需要进行一些优化,甚至可能需要对表进行索引 如果这仍然不能产生足够快的响应时间,那么有两种方法可以解决您的问题: 每当用户想要点击这个长时间运行的

实际上,我正在从DB获取一个数据集,但它有时会消耗(>1分钟)

因此,我使用ajax异步运行,以检查数据集是否返回了结果,同时显示等待的页面

但是,有时,如果用户希望导航到其他页面而不是等待返回的结果,是否有人可以提供
给我一个这样做的提示?

我会首先尝试从数据库优化您的查询。任何运行时间超过1分钟的查询都是非常大的(您可以通过实现分页来避免)。。。或者需要进行一些优化,甚至可能需要对表进行索引

如果这仍然不能产生足够快的响应时间,那么有两种方法可以解决您的问题:

  • 每当用户想要点击这个长时间运行的查询时,在弹出窗口中运行它。这将允许用户继续在主web应用程序中导航

  • 拿着你的页面,开始在iframe中显示它们。然后,当用户浏览其他页面(正在子框架中加载)时,可以在父框架中发出请求。由于在此场景中不会重新加载父帧,因此ajax请求可以在父帧中不间断地完成


  • 无论您在此场景中使用的脚本和代码是什么,都不会对您有所帮助! 更好地优化您的数据库模型

    • 创建具有聚集索引的表
    • 使用存储过程
    • 如果太慢,创建自己的函数和视图
    • 用户在一个页面上最多只能查看10000条记录。取决于流程是否可以限制您的数据及其可选。。。。但不是正确的方式
    一旦您发送了任何请求,您就无法在加载程序运行时停止请求或导航。 对于异步数据处理,不需要加载程序(等待页面)


    试试这个,希望它能有所帮助……

    您正在使用AjaxControltoolKit吗?在EXTJs这样的框架中,您可以为Ajax请求指定超时时间,也可以取消活动的Ajax请求。此外,您还可以使用诸如主干或敲除之类的框架用Javascript重建整个站点。尽管这是合理的,但我怀疑这是一个现实的选择。但你是对的,这是可以做到的。