0

私は問題に直面しています。基本的に、エンコードされたバイトを読み取り、バイトを解析してその中のデータを見つける長時間実行されているタスクがあります。

  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+を使用しています。どんな助けでも大歓迎です

よろしく

4

1 に答える 1