Как буферизовать ответ в режиме совместимости с IE, используя Ajax - PullRequest
0 голосов
/ 13 декабря 2018

Я делаю вызов AJAX, получаю результат в виде данных JSON и обрабатываю его, отображаю в виде таблицы данных.Общее количество записей 5600. Работает в браузере Chrome, FireFox, IE стандартном. Не работает режим совместимости IE.

Анализ с помощью инструмента Fiddler:
Открыл инструмент Fiddler и запустил страницу из IE11 в режиме совместимости (7,8,9,10 и край).Данные загружаются правильно.
Возможность видеть все 5600 строк как в инструменте Fiddler, так и в консоли разработчика IE (вкладка «Сеть» -> раздел «Тело ответа»).
Свойство Fiddler имеет значение типа «Ответ был буферизован перед доставкой».клиенту '.

[
{"Salary":12345.25,"Employee Age Limit":"0-17","Joining type":"Immediate","Joining date":"2010-01-19"},
{"Salary":24567.25,"Employee Age Limit":"0-20","Joining type":"Immediate","Joining date":"2010-01-20"},
... //Cant post 5600rows here
...
...  
{"Salary":24567.25,"Employee Age Limit":"0-20","Joining type":"Immediate","Joining date":"2010-01-20"}
]

Проблема:
Закрыл инструмент Fiddler, я попробовал из IE11 с режимом совместимости (7,8,9,10 и край) и проверилF12 (инструменты разработчика -> вкладка «Сеть» -> тело ответа)

Я вижу 3500 строк вместо 5600 строк и сам последний ряд неполных данных.Опять же, я запустил страницу,
Я вижу 1500 строк вместо 5600 строк и последние строки сами неполные данные.Опять же, 2200rows и т. Д. Получил ошибку разбора, пошла функция ошибки.

[
...
...
... //I got 1036rows istead of 5600rows. 1036th rows also incomplete
{"Salary":12345.25,"Employee Age Limit":"0-17","Joining type":"Immediate","Joining date":"2010-01-19"},
{"Salary":24567.25,"Employee Age Limit":"0-20","Joining type":"Immediate","Joining date":"2010-01-20"},
{"Salary":5678.25,"Employee Age Limit":"0-25","Joining type":"Immediate","Joinin

(в Ajax + JQuery + JavaScrip) Возможно ли буферизовать полный ответ перед началом анализа данных в режиме совместимости IE?

Код:

function loadTable(dataItem, container){
...
...
$.ajax({
  url: "/modules/Demo/services/ReportData",
  type: "POST",
  traditional: true,
data: {
         param1: param1Array,
         param2: calcArray, 
 },
success: function (data) {
         processTableData(data,container);  

          $.ajax({
              url: "/modules/Demo/services/ChartData",
              type: "POST",
              traditional: true,
              data: {
                 des: emp,
                 quarter: third
              },
              success: function (data) {
                genrateChart(data, container);
              },
              error: function () {
                  container.text("Error occure while populate the Chart.");
              }
          });
},
error: function(jqXHR, textStatus, errorThrown) {
        container.text("Unable to load the data into table.");      
        $('#result').html('<p>status code: '+jqXHR.status+'</p><p>errorThrown: ' + errorThrown + '</p><p>jqXHR.responseText:</p><div>'+jqXHR.responseText + '</div>');
        console.log('jqXHR:'); console.log(jqXHR);
        console.log('textStatus:'); console.log(textStatus);
        console.log('errorThrown:'); console.log(errorThrown);
}
});
}

Ошибка:

jqXHR:
[object Object]{readyState: 4, responseText: "[  {"xyz ...", status: 200, statusText: "parsererror"}
[object Object]
{
[functions]: ,
readyState: 4,
{
status: 200,
statusText: "parsererror"}
textStatus:
parsererror
errorThrown:
[object Error]
{
 message: "JSON.parse",
name: "SyntaxError"
...