4

我正在为 Web API 使用 Laravel 5.3,下面是我的 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,。我之所以说它是同时保存记录,是因为尽管我确认所有请求都已成功提交,但请求是随机提交的。

select * from tblrole我的问题是:在提交所有上述 ajax 请求之前,我无法提交 select 语句。

问题是:在提交所有请求之前,数据库没有响应。

在 Post 请求提交过程中,我应该如何检索记录?

以下是我的 Phpmyadmin 详细信息。

在此处输入图像描述

4

3 回答 3

2

或许这就是困惑……

async与获得响应有关,而不是与并行提交有关。

您提供的代码是单线程的——提交一个请求,提交另一个请求,...,但不要等待它们完成

然后,只有在提交100 次后,才执行SELECT.

我猜想 AJAX 会因提交的这么多而窒息并停滞不前。

于 2016-09-05T20:17:41.027 回答
1

您是否为您的应用程序和 phpmyadmin 使用相同的浏览器和相同的网络服务器?通常,服务器会等待一个请求完成,然后再让您执行另一个请求。尝试为 phpmyadmin 使用不同的浏览器。

于 2016-09-06T21:17:50.277 回答
1

闻起来像你曾经autocommit=0并且从未发布过COMMIT. 请向我们展示连接代码,以及一些 SQL 语句。我假设它在SaveRoleApi.

闻起来像从 MyISAM 获得的“表锁定”。如果您的表是这样,请更改为 InnoDB。

于 2016-09-05T19:49:33.950 回答