我们已经构建了一个Excel任务窗格外接程序,它与我们的服务器交互以从外部源获取数据。对于少数呼叫,服务器需要一分钟以上的时间才能响应。对于这样的调用,Excel add-in (在Mac Desktop Excel 2016中运行)不会收到任何响应(成功、失败或超时),即使服务器已经发送了响应。
注意:只有当外接程序在Mac Desktop Excel中运行时,才会发生这种情况。在其他系统和浏览器中,它工作得很好。
Office for Mac客户端是否具有较低的超时阈值?如果是这样,有没有办法提高它?有没有其他的解决方法呢?
发布于 2016-10-25 02:13:40
我们用来承载外接程序的WebKit控件不能为我们提供覆盖web请求的默认超时的方法。Mac上的默认超时时间为60秒。如果您需要一个超过60秒的请求,我已经验证了WebKit支持OSX10.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中似乎出现了倒退。这里打开了一个跟踪bug:https://bugs.webkit.org/show_bug.cgi?id=163814。
https://stackoverflow.com/questions/39617221
复制相似问题