我们加载iframe,其内容由第三方提供商控制。用户执行所需的操作。可能需要1分钟到15分钟。一旦操作完成,第三方提供商就会向我们的回调发送消息,提醒我们。目前我们的解决方法如下:
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秒查询数据库以查找完成情况,当发生这种情况时,我们会重定向用户。
查询数据库寻找成功似乎效率低下。还有更好的方法吗?
答案 0 :(得分:0)
不幸的是,这是http的问题,客户端需要从后端轮询数据以检查发生的更新。
更好的解决方案是使用websocket,这将允许后端在发生更改时通知前端。
设置和使用相对容易。