繁体   English   中英

Rails AJAX多个同时PUT调用失败

[英]Rails AJAX multiple simultaneous PUT calls failing

我的Rails应用程序在一页上包含多个表单,这些表单都与同一控制器(实际上是同一关联)相关。 我有一个提交按钮,它使用jQuery通过AJAX一次提交所有表单。 问题在于,只有某些更新实际上在数据库中显示为生效。 它们全部使用相同的逻辑和相同的方法,并且一次使用一个,因此数据可以很好地保存。 但是所有一次发送的数据实际上只有大约一半保留在数据库中。

Javascript如下所示:

$(document).on('click', '.submit', function(event){
  $('form').submit();
});

这样一键即可通过AJAX提交所有表单。 (图约十种形式)

Rails控制器看起来像这样(简化):

#prepare the JSON data

adapter = DataMapper.repository(:default).adapter
adapter.execute("UPDATE person SET facets=? WHERE id=?", JSON.generate(facets), id)

render :text => 'OK'

我认为问题可能涉及多个进程试图同时访问该方法并用旧数据更新字段的事实。 对于每个请求,我都会得到响应“确定”,但是只有大约一半的结果生效。

有什么建议么? 谢谢!

编辑:

作为更新,以防万一有人遇到同样的问题。 我通过将async设置为false解决了jQuery中的问题。 这会使浏览器发送时间更长,并且可能会阻止其他javascript事件,直到完成为止,但是所有请求都不会相互干扰。

这全都取决于您的浏览器,最大并行HTTP请求的数量是有上限的,如下所示: 每个服务器的并发HTTP / 1.1连接的默认值的官方参考? 我还没有找到最新的参考资料,所以如果您碰到任何我都希望看到的参考资料!

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM