0
我正面臨一個問題,基本上我有長時間運行的任務,讀取編碼字節,然後解析字節以在其中查找數據。客戶端異步JavaScript函數(如何編寫回調函數)
functionLongRunningTask() {
//bytes returned from office.js (GetFileAsync Method)
var documentText = OSF.OUtil.encodeBase64(resultSlice.value.data);
// Open the document, which is stored as a base64 string.
var doc = new openXml.OpenXmlPackage(documentText);
var customXMLpart = doc.getPartByUri("/customXml/item1.xml");
if (customXMLpart == 'undefined' || customXMLpart == null) {
window.location = 'Page1.aspx'
}
else {
if (window.DOMParser) {
var parser = new DOMParser();
xmlDoc = parser.parseFromString(customXMLpart.data, "text/xml");
}
var customxml = xmlDoc.getElementsByTagName("DocumentID");
var documentid = 0;
for (var i = 0; i < customxml.length; i++) {
documentid = customxml[i].textContent;
}
window.location = 'Page2.aspx?documentid=' + documentid;
}
}
所有讀取和遍歷都在客戶端完成,沒有服務器端參與其中。現在我的應用程序運行在辦公室字2013(Office APP基本上),當我以同步方式運行這個長時間運行的任務。 UI被凍結並停止響應,並重新啓動Office APP。
我需要以異步的方式做到這樣UI不凍結我使用HTML5和IE 9+。任何幫助將不勝感激
問候
着我們碰到這樣的回調。 var doc = new openXml.OpenXmlPackage(documentText);當這個方法完成後,它發送回調,然後我可以訪問DOM解析器 – Salman
好的。所以問題在於OPenXmlPackage的實現?你能否在調試窗口中確認這一點? –
基本上我嘗試讀取所有字節使用var doc = new openXml.OpenXmlPackage(documentText);然後我遍歷var customXMLpart = doc.getPartByUri(「/ customXml/item1.xml」);如果我找到了一些然後我設置window.location所以停止UI的方法是var doc = new openXml.OpenXmlPackage(documentText);並且它在文檔字節超過50 kb時停止,並且openxmlpackage中沒有任何錯誤只需要時間,並且時間會暫停推送辦公應用程序以自行刷新的UI – Salman