【问题标题】:Quickly resubmitting ASP MVC Ajax Form causes hang up in javascript快速重新提交 ASP MVC Ajax 表单导致 javascript 挂起
【发布时间】:2011-11-21 16:38:31
【问题描述】:

我正在使用 ASP MVC 2 和 JQuery。我有一个由 HTML Helper Ajax.BeginForm 组成的搜索掩码。基本上是这样的:

Ajax.BeginForm("MyAction", new AjaxOptions{... LoadingElementId = "LoadingElement", OnComplete = "HideLoadingAnimation"...}

ID 为“LoadingElement”的 div 元素只包含一个动画 gif 图像。在其 CSS 定义中,它具有以下值:

#LoadingAnimationWindow{ position: fixed; border-width: 10px; display:none; z-index: 9999;}

我还创建了一个不错的动画蒙版,它在显示加载动画时在页面上创建一个透明但彩色的覆盖层。它的CSS定义如下:

#LoadingAnimationMask{ position:absolute; z-index: 9000; display:none;}

HideLoadingAnimation() 函数如下所示:

function HideLoadingAnimation() {$('#LoadingAnimationMask, #LoadingAnimationWindow').hide();}

现在当我搜索时,我的 Ajax.BeginForm 从上面被提交。这一切都很好。加载动画等全部显示。但是,当我快速提交表单可能连续 3 或 4 次时,我的加载动画不会消失。它只是挂在那里,不会消失。仅当我快速重新提交表单时才会发生这种情况。我知道这可能是您可以忍受的那种错误,但我仍然想修复它。有谁知道解决方案或有没有人遇到过同样的问题?感谢您的帮助:)

【问题讨论】:

  • 当这种行为发生时你确定没有 JS 错误吗?
  • 我会检查并回复您。感谢您的提示:)
  • 我检查了 IE9 开发人员工具(该站点只需要使用 IE 8/9)和 Visual Studio 都没有显示任何 JS 错误。您是否建议使用 Firefox 的 firebug 进行检查,或者 IE9 开发工具是否应该捕获 JS 错误(如果发生)?
  • 是的,FireBug 或 Chromes 开发工具几乎在所有方面都优于 ie 开发工具。即使网站不需要运行这些浏览器,开发工具也非常方便。

标签: asp.net asp.net-mvc ajax


【解决方案1】:

第一次提交表单后,您是否考虑过在结果加载之前禁用提交按钮?

【讨论】:

  • 这是个好主意。我想我会试试的,谢谢:)。只是好奇:你以前有过或听说过这样的问题吗?
  • 不具体,但是我认为奇怪的 javascript / 格式错误的 html 甚至是时间问题都是让您头疼的原因。
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 2014-12-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多