ajax 优化

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:38:15
群内高手 小弟最近学习AJAX 作了一个很简单的“留言”功能

在一个页中,调用2次AJAX组件。

第一次是发送留言内容。这个没什么说的了,发送一次触发一次

第二次是接收留言内容。也就是每秒钟,读取一次接收页查询一次数据库输出一次数据。

这样子做 太占用系统资源了。有高手能指点一下吗。思路就可以。

我做过一个类似的东西,你每隔一段时间就查询数据库并输出相应内容的话确实比较耗资源,可以这样考虑:

首先反馈程序需要输出最新留言的id
第一查询时用js记下最新留言的id
下次查询时,向反馈程序发出请求,获得此时的另一个最新留言id
如果这个id和上次记下的id相等,那说明没有新留言,就不用执行重新显示所有数据的操作,否则就重新显示所有数据

下面是我上次做过的东西的部分代码:
function checkComment () {
if (!oXmlHttp) {
oXmlHttp = zXmlHttp.createRequest();
} else if (oXmlHttp.readyState != 0 ) {
oXmlHttp.abort();
}
oXmlHttp.open("GET","ajax_checkcomment.php",true);
oXmlHttp.onreadystatechange = function () {
if(oXmlHttp.readyState == 4) {
if(oXmlHttp.status == 200) {
var arrInfo = oXmlHttp.responseText.split("||");
if (arrInfo[0] != lastCommentId) {
if (lastCommentId != -1) {
showNotification(arrInfo[1],arrInfo[2]);
}
lastCommentId = arrInfo[0];
}
setTimeout(checkComment,interval);
}
}
};
oXmlHttp.send(null);
}

我反馈程序的输出