XmlHttpRequest 在 IE 中是不是比在 Chrome 中花费更多时间?
Posted
技术标签:
【中文标题】XmlHttpRequest 在 IE 中是不是比在 Chrome 中花费更多时间?【英文标题】:Can a XmlHttpRequest take more time in IE than in Chrome?XmlHttpRequest 在 IE 中是否比在 Chrome 中花费更多时间? 【发布时间】:2015-08-23 10:42:09 【问题描述】:我正在使用一个 Web 应用程序(它真的很大),所以应用程序的某些部分我真的不知道它们是如何工作的。
我是一名前端开发人员,我正在使用一个用 .NET Web Api 实现的 REST API(据我所知)
请求很简单——我使用 kendo Datasource 像这样从服务器获取数据
var kendoDataSource = new kendo.data.DataSource(
// fake transport with local data
transport:
read: function(options)
// set results
options.success(lookupValues);
,
schema:
parse: function (response)
// sort case insensitive by name
response.sort(function (a, b)
return (a.Name.toLowerCase() > b.Name.toLowerCase()) ? 1 : (a.Name.toLowerCase() < b.Name.toLowerCase()) ? -1 : 0;
);
return response;
,
// set the page size
pageSize: 25
);
以及对数据的请求
$http( method: 'GET', url: 'REST/SystemDataSet/' + id + '/Values' ).success(function (response)
// store data
lookupValues = response;
kendoDataSource.read();
// do some logic here
).error(function(error)
// logic
);
我这样做是因为有一些额外的逻辑来操作数据。
Chrome 中的这个请求大约需要 32 毫秒,而 IE 中则需要将近 9 秒。 取回的数据是一样的(可以看Size of response),都是一个JSon对象数组(很简单)
我不知道后端是否有缓存机制,但这没关系,因为我每次都能像这样重现它(在 Chrome 中很快,在 IE 中真的很慢)
关于什么可能导致这种行为的任何想法?据我了解,如果有缓存或其他东西,每个浏览器都应该是相同的,所以这应该发生在两者上,而不仅仅是在 IE 上 - 后端与浏览器无关。
这是我从另一个请求中获得的一些额外信息,用于检查第一个 IE 请求中的时间分布
如您所见,最大的部分是“请求”,即发送请求和接收来自服务器的第一个响应所用的时间。
提前致谢
【问题讨论】:
能否提供在线演示以供直接访问?我在 Internet Explorer 团队工作,很想进一步研究。 我很乐意为您提供帮助,但我无法为您提供访问权限。问题在于:1-客户是一家大(非常大)公司,2-有代码保密协议,最重要的是3-我是离岸开发人员,也就是说我不是真的在公司所在的国家。我是为他们工作的众多开发人员之一。我想问老板这件事,但我的工作有风险,因为这个:/我不知道会发生什么,而且很难冒这个风险。我想我可以提供信息或代码片段,但它真的很大 我看到了完全相同的问题——只是我们没有使用 KendoUI。你有进步吗?如果有请分享。在 IE (10/11/Edge) 中看到 GET 请求最多需要 20 秒,在 Chrome/firefox 中需要 50 毫秒 不,这里根本没有进展。我们将此项目设置为阻止,并继续处理其他事情 我也看到了完全相同的问题,并且也在使用 KendoUI。如果有人有解决方案,请更新。 【参考方案1】:问题可能是为您调用 ajax 的文件夹打开了 Windows 身份验证... 同样的原则也适用于这里......
http://docs.telerik.com/kendo-ui/web/upload/troubleshooting
问题:使用带有 Windows 身份验证的 IE10/11 时,异步上传随机失败 如果在 HTTP POST 上收到 401 质询,则上传会无限期冻结或超时。
解决方案
对于 IE10,请参阅KB2980019
截至 2014 年 11 月 6 日,没有针对 IE 11 的官方修复。请参阅错误 ID 819941
【讨论】:
我们现在正在使用 IE 11 进行测试,所以我想到目前为止我们还没有解决方案。谢谢,这很有用。我们需要检查以前版本的 IE 是否发生同样的问题,我们还没有检查过以上是关于XmlHttpRequest 在 IE 中是不是比在 Chrome 中花费更多时间?的主要内容,如果未能解决你的问题,请参考以下文章
XmlHttpRequest 状态 0 而不是 IE 10 中的 401
IE 中的 XMLHttpRequest.responseURL
IE 11、XMLHttpRequest、xhr.upload 未在 Webworker 中设置
IE 11 错误 - 访问被拒绝 - XMLHttpRequest