以下是你在找什麼?
var xhr = new XMLHttpRequest();
xhr.responseType = 'blob';//or 'text', 'json', ect. there are other types.
xhr.timeout = 60000;//milliseconds until timeout fires. (1 minute)
xhr.onload = function(e2){
var blob = xhr.response;
//handle response data
}
xhr.ontimeout = function(){
//if you get this you probably should try to make the connection again.
//the browser should've killed the connection.
}
xhr.open('GET', "/path/to/URL.cmd?param1=val1¶m2=val2", true);
xhr.send();
我覺得timeout
屬性的關鍵是使長期調查工作,更多的看到spec有對的responseType的同一個文檔中的更多信息。如果未指定超時,則默認值爲零。
因此,這是爲我已經閱讀的響應,但我想知道我應該如何通過xhr發送數據,當我的應用程序準備好數據時,比如多次調用xhr.send(data)或者這是不可能的? (所以我需要在每次有數據或排隊數據時將它打開一個新的xhr,發送它x秒)。所以就像在節點上,我可以打電話多次,然後打電話.end – MarijnS95
也許,我一直在給它一些想法。 我從來沒有玩過這個,但有一個部分狀態'(xhr.readyState == 3)'我對瀏覽器的執行情況瞭解不多。那就是說有一個[arrayBuffer叫做響應主體](http://www.w3.org/TR/2014/WD-XMLHttpRequest-20140130/#response-entity-body),它可能包含部分數據,直到readyState狀態已經完成了。 因此,您可以多次執行來自服務器的.write調用,並將其讀取並在部分段中處理。你可以增加超時毫秒,回憶同樣的請求'ontimeout' –
這就是我們已經可以做到的,當XHR打開時(當兩端都沒有關閉/結束時),我可以調用多次* *服務器**,但我的問題是,我應該如何從**客戶端**做這樣的事情。 – MarijnS95