Я делаю вызов 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"