Gon*_*o.- 11 ajax internet-explorer google-chrome kendo-ui angularjs
我正在使用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
});
Run Code Online (Sandbox Code Playgroud)
以及对数据的请求
$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
});
Run Code Online (Sandbox Code Playgroud)
我这样做是因为有一些额外的逻辑来操纵数据.
Chrome中的此请求需要32毫秒,而在IE中需要大约9秒.检索到的数据是相同的(你可以看到响应的大小),这是一个JSon对象的数组(非常简单)
我不确切知道后端是否有缓存机制,但它无关紧要,因为我每次都能像这样重现它(在Chrome中快速,在IE上真的很慢)
什么可能导致这种行为的想法?据我所知,如果有一个缓存或其他东西,它应该对每个浏览器都是相同的,所以这应该发生在两者上,而不仅仅发生在IE上 - 后端与浏览器无关.
这是我从另一个检查第一个IE请求中的时间分配请求的一些额外信息
如您所见,最大的部分是"请求",即发送请求并从服务器接收第一个响应所花费的时间.
提前致谢
问题可能是为您调用 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
归档时间: |
|
查看次数: |
4471 次 |
最近记录: |