Загружается iframe, содержимое которого контролируется сторонним провайдером. Пользователь выполняет необходимые действия. Может занять от 1 минуты до 15 минут. Как только действия будут завершены, сторонний поставщик отправит сообщение нашему обратному вызову, предупреждая нас. В настоящее время здесь, как мы решаем:Лучший способ перенаправления обратного вызова пользователя fom
function getStatus() {
var action = "getStatus";
$.ajax({
type: "POST",
url: "/scripts/scripts.php",
data: { "action" : action, "id" : id },
cache: false,
async: false,
success: function(html) {
if (html == "Success")
window.location.href = "/next-step";
else
return setTimeout(getStatus, 2000);
}
});
}
getStatus();
Когда мы получим обратный вызов, мы обновляем базу данных, отметив, что действие выполнено. Среднее время, мы используем jquery для запроса базы данных каждые 2 секунды в поисках завершения, и когда это происходит, мы перенаправляем пользователя.
Запрос базы данных, ищущей успех, кажется неэффективным. Есть ли способ лучше?
Есть слишком много возможных ответов, или хорошие ответы будут слишком длинными для этого формата. Пожалуйста, добавьте детали, чтобы сузить набор ответов или изолировать проблему, на которую можно ответить в нескольких параграфах. Я бы предположил, что вы нашли форум для разработки (возможно, [reddit] (https://www.reddit.com/)?) выработать общие положения. Затем, когда у вас возникнут проблемы с кодированием, вернитесь в StackOverflow, и мы будем рады помочь. –