使用纯 Javascript ajax 是可能的。当请求完成之前接收到数据时,该onreadystatechange
事件将以 3 触发。readyState
在下面的示例中,newData
将包含新的数据。我们必须做一些处理,因为 XHR 实际上给了我们到目前为止的全部数据responseText
,所以如果我们只想知道新数据,我们必须记录最后一个索引。
var httpRequest, lastIndex = 0;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
httpRequest = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 8 and older
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
httpRequest.onreadystatechange = function() {
if(httpRequest.readyState === 3) {
var newData = httpRequest.responseText.substring(lastIndex);
lastIndex = httpRequest.responseText.length;
console.log(newData);
}
};
httpRequest.open('POST', '/file.php');
httpRequest.send('action=send');
至于 jQuery ajax,这个答案表明 jQuery 可以让你绑定到,readystatechange
但我还没有测试过。