php – 高频Ajax和MySQL睡眠过载

我目前正在开发一个轻量级PHP框架,用于我的网站的一些高请求ajax,并遇到了一个让我完全难过的有趣问题. ajax用于一系列通知,因此javascript每30秒发送一条新信息的ajax请求.这个ajax在整个站点的每个页面上都是活动的,所以我意识到它有很多请求,因为有几百个用户在任何特定时刻都在浏览站点,许多用户打开了几个窗口.

语法明智一切都很完美.问题是,当我为我的社区激活ajax时,MysqL数据库中有30-40个SLEEP命令.所有这些似乎都忽略了10秒的设置超时.因此,它会影响整个网站的性能.

我的理解是,剩余睡眠命令是未关闭的连接的结果.我使用MysqLi面向对象的类,并使用我自己的一些函数扩展它.一切都是通过教科书,并根据文档进行了双重检查,我确保MysqLi类的每一小部分都被关闭并发布.

如果任何人对这种效果有任何智慧或经验,我将非常感谢任何建议.

解决方法:

您是否尝试过推送方法与当前的拉/轮询方法相比?看看Comet:

> Comet a new approach to AJAX applications
> Comet (wikipedia)
> Comet programming: Using AJAX to simulate server push
> Ajax Push Engine

但是,存在一些缺点,主要的缺点是您必须维护打开的连接,而某些浏览器会限制您可以维护的连接数.以下文章讨论了使用Comet的优缺点,并提出了一种混合轮询方法

> The allure of Comet

这是一个讨论彗星的stackoverflow问题:

> Compatibility of Comet with current technology

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...