поиск элемента по критериям
итак, я получаю json объект со списком заданий. Укаждого задания есть его айди, текст, айди родительского задания (каждое задание может иметь подзадания)
необходимо выбрать все подзадания, принадлежащие некоторому подзаданию |
перебор по jsonу (надеюсь, вы не сделали json вложенным ? в нем есть ограничение на вложенность), хитрый цикл
что то типа этого var k = 0, child_tasks = [], looked_all = false; while(true) { if (data[k].parentId = parentId) { child_tasks.push(k); } if (k == data.length) looked_all = true; if (looked_all) break; } |
Цитата:
|
конечно-же не сделал. Циклом перебитать все элементы... Думал так сделать, но отказался, ибо долго. Элементов примерно 5к, а клиентские машины имеют камни 1.2 и мозгов 128мб. Может что-нибудь лучше есть?
|
Цитата:
http://ua.php.net/json_decode Цитата:
|
Цитата:
|
Цитата:
|
думаете перебрать 5000 элементов будет быстрей ?
очень сомневаюсь из двух зол выберите меньшее 1. нагрузка на сервер в случае запроса к серверу 2. тормознутость страницы в случае с вычислениями без запросов к серверу. конечно как идея, изменить формат вашего джсона, вы же как то его формируете : Добавить туда поле типа - child_ids или на вашей странице запустить деферред вычисление и для каждого id найти все childы( и "закешировать" их в джсе). |
у каждого объекта есть поле parent_id. От этого как-то можно оттолкнуться?
|
конечно, просто на сервере при формировании jsonа
каждому itemу присвойте еще одно поле child_ids : [] это будет массив с айдишниками детей. как их вычислять ? как пример [{1:{ title:"dsad", parent_id: 0, child_ids : [2] }, 2: { title: "dsadasdas", parent_id:1 } }] упс видим что 2 - это ребенок 1 элемента добавляем в 1 след. поле поняли ? |
Часовой пояс GMT +3, время: 02:38. |