我有一个关于jquery ajax()的问题..我创建了一个表格,需要在Tab键之间跳过单元格。构造网格使得需要两次调用ajax(用于保存前一个单元格并在第二个单元格中显示输入)。 我的问题是,当有人使用制表符编辑单元格时,有时响应非常慢。正常响应大约是40-70ms,然后在相同的情况下响应时间超过1秒..为什么会这样?在我看来,服务器没有注意,因为当编辑当前单元格有延迟时,更常出现这个问题。长响应不是由编辑的数据类型或类似的东西引起的。它看起来像它完全随机.. 我不想重拍网格,因为除了这个问题一切都很好... 谢谢!
答案 0 :(得分:1)
我认为有两种可能的方法可以解决这个问题。
模块化。如果可以,请将网格隔离到沙箱原型中,除了重现错误所需的内容之外,其他任何内容都不会实现。如果您的代码是模块化的,这很容易,如果不是,则可能是不可能的。
隔离行为的第二种方法是实际与服务器断开连接。这就是我的意思:可以修改你的ajax来简单地返回一个'mocked'对象。这样您就知道没有延迟或意外的数据类型。这个概念被称为“数据模拟”,类似于测试驱动开发设置。对于您来说,如果在请求响应回调中出现问题,这将证明这一点。但是,我认为不是。
事件。出于某种原因,您的描述听起来可能与事件有关。如果某些东西被破坏,将网格隔离成原型可能会意外地解决这个问题。所以这是我在这种情况下的建议:
一个。跨浏览器测试错误案例。事件在不同浏览器中的行为可能不同。这可能会给你一个根本原因的暗示。
B中。步骤调试您的代码。如果正在产生一系列事件,或者另一个处理程序正在踩入它不应该 - 最好的办法是在运行时捕获它。
℃。 Chrome,右键单击,检查元素,脚本选项卡和设置断点是一个功能强大的工作流程,可帮助您解决此问题。
d。自定义事件有一个常见的情况需要stopPropagation()或preventDefault(),它会将其他事件操作与处理程序的DOM堆栈分开。这可能是你的情况,也可能不是这种情况,我提到它的原因是 - 当我在过去遇到它时,它最初看起来是随机的,很难重现。 Here is a link to this information on MDN
希望有所帮助! 纳什