在执行我的加载项时,有一个函数可能需要大约15秒才能运行(在最坏的情况下)。我意识到在Excel Online中,系统将等到函数完成。但是,在Excel Windows中,几秒钟后,系统认为加载项没有响应,并重新启动加载项:
我做了一个耗时的功能如下,这不是我的初始功能。 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';
}
})();
有谁知道如何让系统等待?
答案 0 :(得分:1)
这与您在常规网站中需要做的没什么不同。请参阅此处的优秀文章(https://www.nczonline.net/blog/2009/01/13/speed-up-your-javascript-part-1/),尤其是关于分块和使用setTimeout的部分。