我面临一个问题,基本上我有一个长时间运行的任务,它读取编码字节然后解析字节以在其中查找数据。
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;
}
}
所有读取和遍历都在客户端完成,不涉及服务器端。现在,当我以同步方式运行这个长时间运行任务时,我的应用程序在 office word 2013(基本上是 Office APP)中运行。UI 被冻结并停止响应并重新启动 Office APP。
我需要以异步方式执行此操作,因此 UI 不会冻结我正在使用 HTML5 和 IE 9+。任何帮助将不胜感激
问候