#javascript #jquery #arrays #csv #papaparse
Вопрос:
Привет всем, я использую последнюю версию papa parse и использую пользовательский веб-работник, но из-за больших файлов я использую обратный вызов фрагмента и выполняю функцию для вставки значений в таблицу html, но я хочу, чтобы она показывала данные по одному после анализа каждого фрагмента вот мой код:
var worker = new Worker('js/worker.js');
worker.addEventListener('message', function(ev) {
var nbChunks = 0;
Papa.parse(ev.data, {
chunkSize: 1000,
chunk: function(results, Parser) {
nbChunks ;
csvTableChunk(results, nbChunks, Parser);
},
complete: function(results) {
end_time = performance.now();
$('#loader').hide();
console.log('Took ' (end_time - start_time) " milliseconds to load and process the CSV file.");
}
});
worker.terminate();
}, false);
worker.postMessage({
file: file
});
И после анализа фрагмента я использую функцию для вставки значений в таблицу html, и я хочу, чтобы она показывала мне значения после анализа каждого фрагмента, но она просто отключает страницу и просто показывает все результаты вместе, и я хочу, чтобы она показывала данные после анализа каждого фрагмента. Вот мой код для вставки данных в значения.
function csvTableChunk(results, nbChunks, Parser) {
var table = $('#ordersProductsTable');
response = results['data'];
if (nbChunks > 1) {
nbh = parseInt(results['data'][0][0]);
var length = results['data'].at(-1)[0];
r = 0
} else {
nbh = 1;
r = 1;
var length = response.length - 1;
}
if (response.length > 0) {
var sr = (response[0][0]).trim();
var col = 0;
var tobjectId_ac = tobjectId = '';
var id = '';
for (var a = nbh; a <= length; a , r ) {
$(table).find('tr:nth-child(' a ')').each(function(b, value) {
row = r;
if (row <= length) {
var column = response[row];
var collength = column.length - 2;
$(this).find('td').each(function(index, val) {
if ($(this).css('display') != 'none') {
$(this).find('select').each(function() {
if ($(this).css('display') != 'none') {
var selId = this.id;
$("#" selId " option:contains('" column[col] "')").attr('selected', 'selected');
col ;
}
});
$(this).find('textarea').each(function() {
if ($(this).css('display') != 'none') {
$(this).val((column[col]));
col ;
}
});
$(this).find('input').not(':input[type=button], :input[type=submit], :input[type=reset]').each(function() {
if ($(this).css('display') != 'none') {
if (row == length amp;amp; col == collength) {
$(this).val(column[col].substring(0, column[col].length - 3));
col ;
return;
} else {
if (col == 0) {
col ;
}
if (typeof column[col] == "undefined" || column[col] == null) {} else {
var value = (column[col]).trim();
}
$(this).val(value); //Here My Values Is Inserting.
col ;
id = this.id;
if (typeof($('#' id).attr('onkeydown')) !== "undefined") {
setLazyAutoCompleteValueFromText(id, value);
} else {
id = this.id;
$('#' id).trigger("change");
$('#' id).trigger("blur");
}
}
}
});
}
});
col = 0;
}
});
}
}
}
Он показывает загрузку, но где бы я ни нажимал на страницу, он ничего не делает, и после анализа он показывает все строки вместе, и я хочу, чтобы он показывал данные по одному после анализа каждого фрагмента.
Пожалуйста, помогите мне, я занимаюсь очень важным делом.
Любая помощь будет признательна.
Комментарии:
1. Не могли бы вы, пожалуйста, убрать все эти заглавные буквы? Это делает вопрос очень трудным для понимания.