我的网站正在向我的 Web 服务发送 ajax 帖子,而 Web 服务作为回报将返回一个 json,并且该 json 将在成功回调中进一步使用。
现在,这是我的问题,当我的网站发送多个 ajax 帖子时,Web 服务返回的那些 json 似乎混乱了。
我正在考虑同步 ajax 帖子或网络服务 (REST)?我读到您不需要同步 REST 服务,是这样吗?如果同步是解决方案,我应该在哪里同步它?ajax 中的 async: false 会同步帖子吗?
谢谢。
我想过包括一些代码:
网络服务:
@POST
@Override
@Produces("application/json")
@Consumes("application/json")
public Customer create(Customer cust){
custManager.save(cust);
return custManager.getCust(custManager.getCount());
}
阿贾克斯:
$.ajax({
url: custURL,
type: 'POST',
data: JSON.stringify(sdata),
dataType: 'json',
contentType: 'application/json; charset=utf-8',
success: function(json){
var cust = JSON.parse(JSON.stringify(json));
var newId = cust.id;
updateCustId(oldId, newId);
}
});
它所做的是将客户的数据发布到 Web 服务,并且 Web 服务为其指定一个 id 并将其返回给客户端以更新其客户 id。不仅如此,我还将引用旧客户 ID 的其他表更新为从服务器生成的新表,并且在更新这些其他表之后,它也将被发送到 Web 服务。我说的表是 web sql,它的查询也是异步工作的。所以最终结果是有时 id 被弄乱了,其他表被发送到 web 服务,但它使用的 customerid 仍然是旧的(我使用了回调,确保在发送之前需要先更新它到服务器)。
让我的 ajax 调用 async: false 使它们同步而不是混在一起工作。