所以我开始了一个项目,我想进行在线ajax聊天,但我不想使用jQuery JSON,COMET等。我正在寻找纯javascript,没有库没有框架。
好消息是我已经进行了聊天,并且工作正常。我为什么要发布这篇文章?因为我根本找不到任何用于长轮询的纯 JavaScript 解决方案。目前,我正在使用setInterval方法"要求"数据库发送数据库中的任何内容。现在,每当我收到响应时,如何执行我的 Ajax 请求?(长轮询)。
请记住,我不是在寻找jQuery解决方案或您有什么。我使用的是纯JavaScript和PHP。没有框架或库。
提前谢谢。
我相信
这与您寻找的内容相对接近 - 参考NetTuts Plus上的香草JS Ajax教程:
load('test.txt', function(xhr) {
document.getElementById('container').innerHTML = xhr.responseText;
// you would obviously custom tailor this peice to utilize your specific data
});
function load(url, callback) {
var xhr;
if(typeof XMLHttpRequest !== 'undefined') xhr = new XMLHttpRequest();
else {
var versions = ["MSXML2.XmlHttp.5.0",
"MSXML2.XmlHttp.4.0",
"MSXML2.XmlHttp.3.0",
"MSXML2.XmlHttp.2.0",
"Microsoft.XmlHttp"]
for(var i = 0, len = versions.length; i < len; i++) {
try {
xhr = new ActiveXObject(versions[i]);
break;
}
catch(e){}
} // end for
}
xhr.onreadystatechange = ensureReadiness;
function ensureReadiness() {
if(xhr.readyState < 4) {
return;
}
if(xhr.status !== 200) {
return;
}
// all is well
if(xhr.readyState === 4) {
callback(xhr);
}
}
xhr.open('GET', url, true);
xhr.send('');
}
您可以根据返回值将"成功"处理程序构建到"确保就绪性"中
这是NetTuts教程的链接
另一个是 MDN ajax API 文档