簡體   English   中英

Ajax從服務器發送時讀取響應

[英]Ajax reading response from server as it gets sent

我正在嘗試進行一些長時間的輪詢,並且很難弄清楚如何在發送數據時從服務器讀取數據。

我在客戶端上有以下內容:

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發出新請求嗎? 我不能利用相同的請求嗎?

請閱讀有關onreadystatechange的信息

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

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

您需要多次輪詢服務器或使用套接字連接(例如socket.io) 我建議閱讀這篇文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM