[英]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.