【问题标题】:Possible problems due to repeated ajax calls?由于重复的ajax调用可能出现问题?
【发布时间】:2011-10-05 18:07:08
【问题描述】:
我打算有一个 (Telerik MVC) 网格,其中每一行都有一个按钮。单击时,将通过 ajax 在数据库中更新一个布尔值,并且回调函数将在该行的一个单元格中设置一个“复选标记”图像。用户应该能够以快速的方式单击多行,如果他这样做,我试图预测任何问题。是否有可能在 DOM 或数据库服务器中发生争用?
【问题讨论】:
标签:
sql-server
asp.net-mvc
ajax
【解决方案1】:
为了确保用户体验不会受到影响,我会这样做:
- 创建要更新的对象数组
- 每次单击复选框时,将其添加/更新到数组中/在数组中 - 这将确保多次单击同一个复选框将只导致一次 AJAX 调用
- 在数组中添加复选框后,启动 AJAX 更新过程
- 在 AJAX 响应时,检查数组中是否有要处理的项目并重复
【解决方案2】:
最大的因素可能是您的服务器处理 Ajax 请求的速度。如果需要一段时间,那么用户体验就会很糟糕。
您可以通过将键添加到变量并定期发送到服务器来改善这一点,例如:
- 用户点击一个项目
- 向数组添加键
- 使用 window.setTimeout() 在 x 毫秒内启动发送函数
- 用户单击另一个项目
- 超时,代码运行,在一个请求中将两个密钥发送到服务器
- 用户点击一个项目
- 向数组添加键
- 使用 window.setTimeout() 在 x 毫秒内启动发送函数
等等