2015-07-29 3 views
2

Как и в методе с longPolling:Как запустить другой метод JS из 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

В примере, вы в курсе, вы можете просто сделать что-то вроде этого, добавляя анонимную функцию, которая вызывает ваш метод «концы» и перезагрузит метод опроса:

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

Вы также можете изменить до window.setInterval() дальнего голосования р aradigm, который позволит вам использовать вашу опцию complete, чтобы установить ваш фактический метод конца, а не захватить его для длительного опроса.

Я предполагаю, что вы хотите назвать код состояния «конец» после завершения первого раунда. В противном случае вам не будет конца ваш опрос, если только у вас не будет сообщения на сервере, и в этом случае вам нужно опубликовать этот код для получения дополнительной информации.

+0

спасибо. Могу ли я запустить другой метод on_start для этого ajax-запроса? –

+0

Я решаю свою проблему, thx.) Так скажите мне, пожалуйста, как начать любой метод, когда этот метод ajax запускается? –

+0

@dmitrygolubeu. Вы можете использовать https://api.jquery.com/ajaxStart/ для регистрации обработчика событий для ** любого запуска ** ajax метода. Если вы просто хотите вызвать функцию при запуске этого метода ajax, поместите ее внутри функции getNewMessagesLong –