Office for Mac客户端上的TaskPane应用程序中的冗长HTTP调用失败

时间:2016-09-21 12:56:36

标签: macos office365 office-js excel-addins

我们构建了一个Excel任务窗格加载项,它与我们的服务器交互以从外部源获取数据。对于少数呼叫,服务器需要一分多钟才能响应。对于此类调用,即使服务器已发送,Excel外接程序(在Mac Desktop Excel 2016中运行)也不会收到任何响应(成功或失败或超时)。

注意:仅当加载项在Mac Desktop Excel中运行时才会发生这种情况。在其他系统和浏览器中,它可以正常工作。

Office for Mac客户端的超时阈值是否较低?如果是这样,有没有办法增加它? 还有其他解决方法吗?

1 个答案:

答案 0 :(得分:0)

我们用来托管加载项的WebKit控件没有为我们提供覆盖Web请求的默认超时的方法。 Mac上的默认超时为60秒。如果您需要超过60秒的请求,我已经验证了WebKit在OSX 10.11.5上尊重XMLHttpRequest的超时属性。此请求不会超时120秒:

var xhr = new XMLHttpRequest();
var startDate = new Date();
xhr.open('GET', url, true);

xhr.timeout = 120000; // time in milliseconds

xhr.onload = function () {
  console.log((new Date() - startDate) + " milliseconds to return.");
};

xhr.ontimeout = function (e) {
  console.error("error");
};

xhr.send(null);

请注意,这在mac OS Sierra 10.12.1中无效。 WebKit似乎已经出现了回归。此处会打开跟踪错误:https://bugs.webkit.org/show_bug.cgi?id=163814