Ajax在发送时从服务器读取响应

时间:2015-02-11 12:10:04

标签: javascript node.js

我正在尝试进行一些长时间的轮询,而且我很难弄清楚如何在服务器发送数据时从中读取数据。

我在客户端上有以下内容:

var xhr = $.ajax('/getData');

setInterval(function(){
    console.log(xhr.responseText);
}, 1000); // reads response each 1s

服务器

app.get('/getData', function(req, res){
  setInterval(function(){
    res.write('hi-' + Math.random()); // write random stuff each 1s
  }, 1000);
});

xhr.responseText仅在请求完成时填充。

这甚至可以吗?我每次需要时都要为/getData提出新请求?我不能利用同样的要求吗?

2 个答案:

答案 0 :(得分:1)

请阅读onreadystatechange

http://www.w3schools.com/ajax/ajax_xmlhttprequest_onreadystatechange.asp https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

$.ajax({
// ...
beforeSend: function (request, settings) {
    $(request).bind("readystatechange", function (e) { alert("changed " + e.target.readyState); });
}});

答案 1 :(得分:0)

您需要多次轮询服务器或使用socket.io之类的套接字连接。 我推荐阅读this article