Аякс Лонг Поллинг - PullRequest
       0

Аякс Лонг Поллинг

3 голосов
/ 02 февраля 2012

Я недавно задал вопрос на StackOverflow о моей функции, и люди рекомендовали мне использовать Ajax Long Polling.Я провел последние пару дней, исследуя эту тему, и пытался написать простой длинный код опроса, но ни один из них не сработал, и я не могу заставить себя что-либо сделать, чтобы работать вообще.

Вот мой основнойfunction:

    <script language='javascript' type='text/javascript'>
    var interval=self.setInterval("checkformessages()",4000)
    function checkformessages() {
    $('#incomingmessages<?php echo $otherchatuser ?>').load('checkfornewmessages.php?username=<?php echo $username; ?>&otherchatuser=<?php echo $otherchatuser; ?>');
    }
    </script>

Может ли кто-нибудь сказать мне, как превратить это в базовую функцию длинного опроса или даже просто указать путь, по которому мне нужно добраться?Любая помощь очень ценится.Спасибо!

1 Ответ

6 голосов
/ 02 февраля 2012

Обычно (т. Е. Когда не используется длинный опрос), ваш код JavaScript отправит запрос на ваш сервер, и ваш сервер немедленно вернется с информацией. Однако ваш сервер не всегда может сказать что-то важное сразу. В вашем примере (который кажется чатом) человек, с которым вы общаетесь, возможно, ничего не сказал, когда вы отправляете запрос на checkfornewmessages.php. Поэтому, когда ваш клиент JavaScript запрашивает у сервера то, что было сказано, ему действительно нечего ответить, кроме «Ничего не было сказано».

При длинном опросе вместо того, чтобы checkfornewmessages.php немедленно возвращаться с "Ничего не было сказано", вы просто не возвращаетесь с checkfornewmessages.php, пока не появится что-то важное для возврата.

Другими словами, для продолжительного опроса интересная информация выполняется на стороне сервера, вероятно, на вашей странице checkfornewmessages.php. Ваш код JavaScript не должен ничего делать, кроме как связаться с checkfornewmessages.php и ждать, пока он ответит.

...