У меня есть код в javascipt, который заполняет список выпадающего списка. В этом списке содержится более 10 000 данных. Я исследовал проблему и выяснил, что причиной было большое количество данных.Как предотвратить невосприимчивый скрипт?
вот код:
$("select#mdl-criteria-category").change(insertCriteriaOptions);
$("select#mdl-criteria-level").change(insertCriteriaOptions);
$("select#mdl-criteria").change(checkIfCriteriaExists);
function insertCriteriaOptions() {
var skillId = $("select#mdl-criteria-category").val();
var level = $("select#mdl-criteria-level").val();
if (skillId != '-' && level != '-') {
removeAllOptions("#mdl-criteria");
addDefaultOption();
filterCriteriaOptions(skillId, level);
}
}
function filterCriteriaOptions(skillId, level) {
var optionId = skillId + "-" + level;
for (var key in criteriaOptionList) {
var id = key.split("-");
if (id[0] == skillId && id[1] == level) {
var option = document.createElement("option");
option.text = criteriaOptionList[key];
option.value = id[2];
document.getElementById("mdl-criteria").add(option);
}
}
}
function populateCriteriaOptionList() {
$("#mdl-criteria option").each(function() {
if (this.id != '-') {
var id = this.id + '-' + this.value;
criteriaOptionList[id] = this.text;
}
});
}
Результаты моего исследования показывают, что это происходит из-за функции populateCriteriaOptionList(), так как этот метод должен получить 10000 данных, чтобы быть в массиве criteriaOptionList. Кто-нибудь знает, как любое решение в этом случае? Возможно, кто-то может помочь мне исправить мою проблему. Заранее спасибо.
Проблема в том, что? –
Вы вызываете функцию populateCriteriaOptionList на jquery Load? –
Хм, я надеюсь, что идентификатор элементов-элементов не является «-», как указывает код, идентификатор должен быть уникальным. Также я думаю, что вы знаете, в чем проблема, слишком много предметов, требуется время для повторения 10 000 предметов ... – Esko