[英]Stream ajax/xhr content into page while loading
XHR / AJAX調用正在加載時,是否可以將內容“流式傳輸”到頁面中? 我已經建立了一個基於REST的Java servlet(Restlet),並使用JSP進行模板制作,並且正在使用JavaScript通過對RESTlet的Dojo XHR調用生成所有內容。 不利的一面是,我在等待頁面元素異步完成加載時,它們不顯示。 在本地不是問題,但是如果我處在3G不好的區域,即使只有60 KB的SSH進行動態加載也會花費一些時間,那么一些JSON提取的大小就會減少1-6 MB。
是的,我意識到JSON沒有訂單保證。
我想在下載內容時呈現內容,而不是等待內容完成異步獲取,然后在xhr請求“加載”后調用函數以呈現內容。
例:
function getFinanceData() {
aniPreload("on");
var thePostData = "doWhat=getFinanceData";
var xhArgs = {
preventCache: true,
url: getResource("Finance"),
postData: thePostData,
handleAs: "json",
timeout: timeOutMilli,
load: function (data) {
putAssets(
data.qMerged[0],
data.bGames,
data.books,
data.dTools,
data.licenses,
data.assets
);
naviButtonListener();
aniPreload("off");
},
error: function (data, iostatus) {
aniPreload("off");
window.alert("xhrGet for FinanceData FAIL!, STATUS: " + iostatus.xhr.status + " (" + data + ")");
}
};
dojo.xhrPost(xhArgs);
}
代替加載:function(data){}在加載函數流時,我想要類似的東西。
您的問題有些混亂,但是...如果60K占用大量時間,您將不得不忍受。 對於大型傳輸,要在其余部分完成時看到傳輸的開始,請將大型請求分解為較小的請求。
更新:我之前沒有提到這一點,因為這涉及很多重構。 但是,我相信您可以使用WebSocket來實現流式傳輸。 但是,我之前沒有提到它,因為我不確定流式傳輸長JSON是否真正有幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.