xmlhttprequest vs jquery load();

时间:2010-05-28 07:55:18

标签: jquery

我正在尝试基于php ajax的聊天系统......我已经成功开发了它...我正在使用jquery load()和setInterval每1秒重新加载一次聊天,它在我的localhost上工作正常。 ..但是当我把它上传到我的托管服务器上它也工作正常...但问题是,经过几分钟的聊天,服务器需要很长时间才能重载,以便我的服务器运行并且站点发生故障... < / p>

我的问题是,到目前为止为什么会发生...以及解决方案是什么......我应该使用标准xmlhttprequest而不是load()或$ .ajax()而不是load();

4 个答案:

答案 0 :(得分:2)

用于发出AJAX请求的方法并不重要,您的代码中还有其他错误导致速度变慢。

答案 1 :(得分:1)

jQuery.load()和jQuery.ajax()基本上是XMLHttpRequest的前端。如果他们添加额外的过载(这是可能的),它只会影响浏览器。

您确定您的服务器可以处理此类负载吗?每秒一个请求意味着一个用户每小时会话触发至少3600个请求,并且我假设每个请求至少涉及数据库查找。现在,作为聊天服务器,您应该有许多同时用户。

你可以尝试的事情:

  • 降低刷新率
  • 请勿在待处理的新请求中发送新请求
  • 确保服务器端脚本快速

答案 2 :(得分:1)

尝试将刷新间隔从1秒增加到10秒。

答案 3 :(得分:1)

Tatu是正确的 - 考虑每个请求返回的内容以及实际需要的内容。例如,您是返回整个聊天记录,还是仅返回自上次轮询以来的新消息?如果暂时没有活动,是否需要每秒轮询一次?考虑每次没有新内容时增加轮询时间(并在有新内容时将其重置为1秒)。

您还可以查看COMET方法,了解需要“推送”技术的应用程序。