如何从longPolling运行另一个JS方法?

时间:2015-07-29 01:59:39

标签: javascript

如何使用longPolling方法:

    function getNewMessagesLong() {
pollingFishingStarts();
$request = $.ajax({
    type: 'POST',
    url: "listenMessageLong",
    data: lastIncomingMessageLongJson,
    dataType: 'json',
    success: function(data) {
        }, complete: getNewMessagesLong})
}

完成后运行另一种方法?:

function pollingFishingEnds() {
document.getElementById("fishing-end").src = "resources/img/fishing-end.png";
document.getElementById("fishing-start").src = "resources/img/fishing-start-empty.png";
}

1 个答案:

答案 0 :(得分:1)

通过您发布的示例,您可以简单地执行类似的操作,添加一个匿名函数来调用您的"结束"方法AND重新启动您的轮询方法:

function getNewMessagesLong() {
    pollingFishingStarts();
    $request = $.ajax({
        type: 'POST',
        url: "listenMessageLong",
        data: lastIncomingMessageLongJson,
        dataType: 'json',
        success: function(data) {
        }, 
        complete: function() {
            getNewMessagesLong();
            pollingFishingEnds();
        }
    });
}

您还可以更改为window.setInterval()长轮询范例,该范例允许您使用complete选项设置实际的最终方法,而不是将其用于长轮询。

我在这里假设你要打电话给"结束"第一轮完成后的州代码。否则,您的轮询实际上没有结束,除非您有一些服务器消息要终止,在这种情况下您需要发布该代码以获取更多信息。