我正在使用Laravel 5.3 for Web API,下面是我的JQuery Ajax请求,它同时保存记录。以下是代码..
for (i = 0; i < 100; i++) {
var
data={'Role' : "Role"+i},
request = $.ajax({
url: 'http://localhost:1234/Practise/public/api/SaveRoleApi',
type: "POST",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
async: true,
success: function(d){ console.log(d); }
});
}
我使用for循环来保存100条记录。请检查async: true,
。原因我说它同时保存记录,因为请求是随机提交的,尽管我确认所有请求都已成功提交。
我的问题是:在提交上述所有ajax请求之前,我无法提交选择语句select * from tblrole
。
问题是:在提交所有请求之前,数据库没有响应。
在Post请求提交过程中,我该怎么做才能检索记录?
以下是我的Phpmyadmin详细信息。
答案 0 :(得分:2)
也许这就是混乱......
async
与获取响应有关,而与并行提交无关。
您提供的代码是单线程的 - 提交一个请求,提交另一个请求,...,但不要等待他们光洁度
然后,只有在100 提交之后,才能执行SELECT
。
我猜想AJAX会对那些提交的内容感到窒息并停滞不前。
答案 1 :(得分:1)
闻起来有autocommit=0
但从未发出过COMMIT
。请向我们展示连接代码,以及一些SQL语句。我认为它在SaveRoleApi
。
闻起来像“桌子锁定”,你可以从MyISAM获得。如果您的表是那样,请更改为InnoDB。
答案 2 :(得分:1)
您是否为您的应用和phpmyadmin使用相同的浏览器和相同的网络服务器?通常,服务器在允许您执行另一个请求之前等待一个请求完成。尝试使用不同的浏览器phpmyadmin。