Подтвердить что ты не робот

Может ли XmlHttpRequest занимать больше времени в IE, чем в Chrome?

Я использую веб-приложение (которое действительно большое), поэтому есть некоторые части приложения, которые я действительно не знаю, как они работают.

Я разработчик интерфейса и я использую API REST, реализованный в .NET Web Api (насколько я знаю)

Запрос прост - я использую источник данных kendo для получения данных с сервера следующим образом

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 секунд. Полученные данные одинаковы (вы можете увидеть размер ответа), который представляет собой массив объектов JSon (очень простой)

enter image description here

Я не знаю точно, есть ли механизм кэширования в бэкэнд, но это не имеет значения, потому что я могу воспроизводить его так каждый раз (быстро в Chrome, действительно очень медленный на IE)

Любые идеи о том, что может вызвать такое поведение? Насколько я понимаю, если есть кэш или что-то в этом роде, он должен быть одинаковым для каждого браузера, так что это должно происходить как на IE, так и не только на IE - бэкэнд является агностиком браузера.

Вот дополнительная информация, которую я получил от другого запроса, чтобы проверить распределение времени в первом запросе IE

enter image description here

Как вы можете видеть, самая большая часть - это "Запрос", который является временем, принятым для отправки запроса и получения первого ответа с сервера.

Спасибо в Advance

4b9b3361

Ответ 1

Проблема, вероятно, в Windows Authentication включена для папки, которую вы вызываете ajax из... Здесь применяется тот же принцип...

http://docs.telerik.com/kendo-ui/web/upload/troubleshooting

Проблема. Асинхронная загрузка случайно сбой при использовании IE10/11 с проверкой подлинности Windows Загрузка либо зависает бесконечно, либо истекает, если в HTTP POST получен запрос 401.

Решение

Для IE10 см. KB2980019

Официальное исправление для IE 11 от 6 ноября 2014. См. идентификатор ошибки 819941