等到耗时的功能完成

时间:2016-06-28 04:02:35

标签: ms-office office-js

在执行我的加载项时,有一个函数可能需要大约15秒才能运行(在最坏的情况下)。我意识到在Excel Online中,系统将等到函数完成。但是,在Excel Windows中,几秒钟后,系统认为加载项没有响应,并重新启动加载项:

enter image description here

我做了一个耗时的功能如下,这不是我的初始功能。 Excel Windows下的测试显示,在单击test按钮后,文本区域中没有打印任何内容,几秒钟后,系统将重新启动加载项。

(function() {
    "use strict";

    Office.initialize = function(reason) {
        $(document).ready(function() {
            app.initialize();
            $('#test').click(test)
        });
    };

    function test() {
        document.getElementById("b").value += 'Start\n';
        var x = 10000;
        var w = 0;
        for (var i = 0; i < x; i++) {
            document.getElementById("b").value += i + '\n';
            for (var j = 0; j < x; j++) {
                for (var k = 0; k < x; k++) {
                    w = w + 1;
                    w = w - 1;
                }
            }
        }
        document.getElementById("b").value += 'End\n';
    }   
})();

有谁知道如何让系统等待?

1 个答案:

答案 0 :(得分:1)

这与您在常规网站中需要做的没什么不同。请参阅此处的优秀文章(https://www.nczonline.net/blog/2009/01/13/speed-up-your-javascript-part-1/),尤其是关于分块和使用setTimeout的部分。