重定向用户fom回调的最佳方法

时间:2015-05-18 15:12:04

标签: php jquery redirect callback

我们加载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秒查询数据库以查找完成情况,当发生这种情况时,我们会重定向用户。

查询数据库寻找成功似乎效率低下。还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,这是http的问题,客户端需要从后端轮询数据以检查发生的更新。

更好的解决方案是使用websocket,这将允许后端在发生更改时通知前端。

Here is the link to websocket

设置和使用相对容易。