OfficeJS缓存

时间:2018-01-19 20:19:07

标签: javascript ajax flask office-js

如果有人能更好地解释excel的addin缓存javascript函数的内部工作原理,我真的很好奇吗?我在我自己的内部网站上运行一个烧瓶应用程序,后面是SSL证书。我的插件拉入了这个functionfile.html,并将一个ajax调用回mysite:

<script>
// After the Office library builds, it will look for Office.initialize
// which must be passed a function.  It doesnt have to do anything though.
    Office.initialize = function (reason){
        $(document).ready(function(){
            registerBindings();
        });
    }


    function getData(){
        return Excel.run( function (context) {

            // request bindings
            var state_nbr = context.workbook.bindings.getItem("state_nbr").getRange().load("values");
            // and the rest for the ajax call

            return context.sync().then( function () {
                $.ajax({
                  type: "GET",
                  url: "https://example.com/excel/function",
                  data: {
                      "state_nbr": state_nbr.values[0][0]
                  }
              }).done( function (data){
                      context.workbook.bindings.getItem("test").getRange().values = [["done"]];
                      return context.sync();
              }).fail( function (result){
                      context.workbook.bindings.getItem("test").getRange().values = [["fail"]];
                      return context.sync();
              });
          });
      });
   }
</script>

当我点击我的按钮时,我可以看到具有正确有效负载的请求转到example.com/excel/function,这是一个烧掉一堆CLI垃圾(数百个日志记录命令)的烧瓶路径。

然而,奇怪的是,在每次单击按钮后第一次点击之后我没有得到任何新的ajax请求,我只收到functionfile.html的请求。但是SheetA1仍然会弹出“完成”。

我认为这只是将结果存储在缓存中,但即使烧瓶在调试模式下运行,如果我更改functionfile.html,说[["done"]][["finished"]],也没有新的ajax调用是在我的日志中检测到。但是表格更新了吗?!

0 个答案:

没有答案