【发布时间】:2018-11-22 18:27:18
【问题描述】:
我需要使用 AJAX 在一次操作中从我的服务器读取和写入一些数据。我不希望写入延迟读取,所以当然在服务器上我可以先读取并响应该数据,但是如何提醒前端写入错误?
前端是 Javascript 和 JQuery,后端是 PHP——准确地说是 Laravel(我认为这个问题与语言无关)。
我的标准 JQuery AJAX 请求:
$.ajax({
type: 'POST',
url: 'savedata',
dataType: 'json',
data: { data_to_save: JSON.stringify(mydata) }, // JSON encoded data
success: function (data_from_server)
{
// Update UI with data_from_server
},
error: function (data)
{
console.log('Error:', data.responseText);
}
});
}
服务器端(伪代码):
1. Read requested data from database (using a key in the POST params)
2. Reply to front end with requested data
3. Write data_to_save to the database
4. If there was an error in saving, how to notify the frontend as response has already been sent?
或者我可以在前端执行两个单独的 AJAX 请求,一个读取,一个写入,但是我只是在代码中一个接一个地列出它们,还是只在成功块中触发第二个首先? 两个 AJAX 请求在前端和后端似乎也效率低下。
【问题讨论】:
-
大多数数据库写入速度非常快。在写入 db 之前,您是否有一些较长的进程正在运行?
-
在您发送响应后,您通常无法发送另一个响应,但是您可以通过套接字向客户端发送broadcast 某些内容。但是,它们可能很难正确设置
-
你能不能等到写完后再发送响应?
-
您可以通过套接字向任一方向发送短消息,laravel 对此进行了很好的设置,我强烈建议您查看 laracasts 上的相关视频。
-
你过得怎么样???
标签: javascript php jquery ajax laravel