【问题标题】:Making ajax call live across the actions在动作中进行 ajax 调用
【发布时间】:2011-07-19 22:21:04
【问题描述】:

我正在开发一个 MVC 3 Web 应用程序,并且我需要在弹出窗口中通知用户操作结果。

当用户点击按钮时,现在正在对操作进行 ajax 调用,如果用户继续处理页面中的其他任何内容,则永远不会调用成功的 ajax,并且无法将结果返回给页。

克服这个问题的最佳方法是什么,这样用户在页面中所做的任何事情都不会妨碍 ajax 调用,并且仍然能够向用户显示结果。

编辑

感谢您的快速回复,

我实际上希望用户在点击按钮后继续工作,因为这将是一个异步电子邮件操作。操作完成后,无论用户在做什么,我都想将结果显示在 div 中或使用 jQuery 咆哮

【问题讨论】:

    标签: c# jquery asp.net asp.net-mvc-3


    【解决方案1】:

    如果用户在进行 AJAX 调用时离开页面,则您无法阻止它停止它。您可以做的最好的事情是订阅onbeforeunload 事件并告诉用户正在进行 AJAX 调用,如果他继续,他可能会丢失他的数据:

    window.onbeforeunload = function() {
        return 'You are navigating away from the page but there is an ongoing operation that will be interrupted. Are you sure you want to continue?';
    };
    

    当然,您只会在发送 AJAX 请求之前初始化此处理程序,并在此请求成功时将其删除。

    【讨论】:

      【解决方案2】:

      您可以尝试在 Ajax 调用之前显示全尺寸透明(或更好的半透明)div 叠加层,并在完成时将其隐藏。

      这应该会阻止用户执行任何操作,直到调用返回。

      【讨论】:

        猜你喜欢
        • 2011-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-25
        • 2013-06-25
        • 2014-06-08
        • 2012-07-12
        • 1970-01-01
        相关资源
        最近更新 更多