Две альтернативы
1) Заказ исходного массива с sortInPlace
self.assignments.sortInPlace({ $0.order < $1.order })
self.printAssignments(assignments)
2) Использование альтернативного массива для хранения упорядоченного массива
var assignmentsO = [Assignment] ()
assignmentsO = self.assignments.sort({ $0.order < $1.order })
self.printAssignments(assignmentsO)
Я столкнулся с той же проблемой при работе с mongodb и angularjs. Я использовал пейджинг на стороне сервера. Поскольку у вас огромное количество записей, вы можете попробовать использовать тот же подход.
Предполагается, что вы отображаете 25 записей на одной странице.
Бэкэнд:
Внешний интерфейс:
Так что, в основном, выбор * из table_name LIMIT 25 OFFSET $ {req.query.pageNumber * 25} ограничит количество записей 25. Когда req.query.pageNumber = 1, он сместит первые 25 записей и отправит следующие 25 записей. аналогично, если req.query.pageNumber = 2, он сместит первые 2 * 25 записей и отправит 51-75 записей.
Вы можете использовать ограничения LIMIT
и OFFSET
для разбивки на страницы в MySQL. Я понимаю, что за один раз данные 2 lacs замедляют производительность. Но, как вы упоминаете, вы должны использовать JS
для этого. Поэтому дайте понять, что если вы хотите js
в качестве внешнего интерфейса, то это вам не поможет. Но, как вы упомянули, что у вас есть веб-приложение, если это приложение включено Node(as server)
, то я могу предложить вам путь, который может вам очень помочь.
используют 2 переменные, названные var_pageNo
и var_limit
. Теперь используйте запрос строки mysql как
select * form <tbl_name> LIMIT var_limit OFFSET (var_pageNo * var_limit);
Делайте код в соответствии с этим запросом. Замените переменную на ваши значения желаний. Это ускорит вашу производительность и получит данные в соответствии с указанным вами пределом.
Надеюсь, это будет полезно.
Есть два способа справиться.