У меня есть список с большим количеством записей (100+), идентифицированный идентификатором (MongoDB-). Каждая из записей находится в html-таблице и имеет флажок. Когда пользователь теперь выбирает группу, мне нужно запросить сервер, если каждая из записей находится в определенной группе. Запрос на получение членства не тяжелый, но я не могу выполнить его 100+ раз, что слишком много нагрузки.
В настоящее время у меня есть PHP-код для получения членства в группе (слишком длинный для публикации) и последующего кода javascript, который выполняется всякий раз, когда изменяется выбор:
$('checkbox[data-type="group"]').each(function(idx, val) {
// get the ID and set it checked/unchecked
});
Моя проблема заключается в следующем: как я могу выполнить запрос по серверу один раз, а затем проверить каждый идентификатор, если запись находится в выбранной группе?
Ваш вопрос немного трудно понять, но я думаю, вам следует опубликовать список JSON и опубликовать его в одном запросе и обработать серверную итерацию на стороне сервера:
id_list = {};
$('checkbox[data-type="group"]').each(function(idx, val) {
the_id = //get the id into a variable somehow;
id_list[the_id] = val;
});
$.ajax({
url: "some url",
dataType: "json",
type: "post",
data:id_list
}).done(function(data) {
//using returned data, set each to check/unchecked
//assuming that the returned data had format of id:boolean, and the boolean defines whether it should be checked (e.g. {1: true, 2: false, 3: false} )
$.each(data, function(index,value) {
if (value == true) {
$('checkbox#'+index).attr('checked',true);
} else {
$('checkbox#'+index).attr('checked',false);
}
});
Если это не ответит на ваш вопрос, пожалуйста, перефразируйте свой вопрос более подробно.