设想:
- 自己滚动的 jQuery Ajax 帖子以验证未聚焦的输入字段
- 用于在表单上发布的标准提交按钮
如果我导致验证触发并等到我在 firebug 中看到它完成,然后单击全部保存就可以了。但是,如果我在字段中留下更改,然后直接单击提交按钮(因此 ajax 和标准发布几乎同时发生),则请求会在返回“连接重置”之前挂在浏览器中。如果在 VS 调试中运行,除非我点击暂停,否则我什么也看不到。然后我会看到以下调用堆栈:
System.Web.dll!System.Web.Hosting.IIS7WorkerRequest.ReadEntityCoreSync(byte[] buffer, int offset, int size) + 0x23 bytes
System.Web.dll!System.Web.Hosting.IIS7WorkerRequest.ReadEntityBody(byte[] buffer, int size) + 0x18 bytes
System.Web.dll!System.Web.HttpRequest.GetEntireRawContent() + 0x2d4 bytes
System.Web.dll!System.Web.HttpRequest.GetMultipartContent() + 0x45 bytes
System.Web.dll!System.Web.HttpRequest.FillInFormCollection() + 0xad bytes
System.Web.dll!System.Web.HttpRequest.Form.get() + 0x45 bytes
System.Web.dll!System.Web.HttpRequest.HasForm.get() + 0x46 bytes
System.Web.dll!System.Web.UI.Page.GetCollectionBasedOnMethod(bool dontReturnNull) + 0x62 bytes
背景:
ASP.NET 4 MVC 2 Web 应用程序,带有一些在 Win7/IIS7 上本地运行的旧版 Web 表单页面(ajax 发布和标准发布所涉及的页面是同一个 Web 表单页面)。
我可能会在 ajax 验证触发时禁用提交按钮。但是,即使我这样做了,我也很想知道是什么导致了这个看似基于时间/并发请求的问题。