微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery – Ajax Long Polling

我最近在StackOverflow上问了一个关于我的函数的问题,人们建议我使用Ajax Long Polling.我花了几天时间研究这个主题,并尝试编写基本的长轮询代码,但是没有一个能够工作,我根本无法完成任何工作.

这是我的基本功能

<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>

有人能够告诉我如何将其转换为基本的长轮询功能,或者甚至直接指向我需要到达的路径.很感谢任何形式的帮助.谢谢!

解决方法

通常(即不使用长轮询时),您的JavaScript代码将向您的服务器发出请求,您的服务器将立即返回信息.但是,您的服务器可能并不总是有重要的事情要立即说出来.在你的例子中(这似乎是一个聊天),当你提出checkfornewmessages.PHP的请求时,你正在聊天的人可能没有说什么.因此,当您的JavaScript客户端询问服务器所说的内容时,服务器确实没有任何回应,除了“没有说什么”.

使用长轮询而不是checkfornewmessages.PHP立即返回“没有说过”,你只是不会从checkfornewmessages.PHP返回,直到有重要的东西返回.

换句话说,对于长轮询工作,有趣的东西可以在服务器端完成,可能在checkfornewmessages.PHP页面中.除了联系checkfornewmessages.PHP之外,您的javascript代码不必执行任何操作并等待其响应.

原文地址:https://www.jb51.cc/jquery/179092.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐