Мне нужно использовать 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);
}
});
}
Серверсторона (psuedocode):
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-запроса также кажутся гораздо более неэффективными как на переднем, так и на заднем концах.