Ajax Array Display Control - разбиение на страницы - PullRequest
1 голос
/ 30 сентября 2010

У меня есть область, которая заполняется примерно 100 записями из запроса php mysql.

Нужно добавить пагинацию ajax, означающую сначала загрузку 10 записей, а затем по щелчку пользователя, скажем, символ "+", этозаполняет следующие 20.

Таким образом, в области вместо отображения всего сразу будет отображаться 20, затем по щелчку, затем по следующим 20, следующим ... и т. д. без обновления.

Должен ли я сбросить 100 записей в переменную сеанса?

Должен ли я вызывать Myqsl-запрос каждый раз, когда пользователь нажимает на триггер следующей страницы?

Не уверен, что будет лучшим подходом ... или способобойти это.

Меня беспокоит, что база данных будет расти от 100 до 10000.

Любое направление помощи очень ценится.

Ответы [ 2 ]

1 голос
/ 30 сентября 2010

Если у вас большой набор записей, который будет часто просматриваться (но не часто обновляться), посмотрите на APC, чтобы кэшировать данные и делиться ими между сеансами. Вы также можете создать статический файл, который будет перезаписан при изменении данных.

Если данные должны быть отсортированы / обработаны на странице, вам нужно ограничить количество загружаемых записей, чтобы JavaScript не работал слишком долго. ExtJS имеет несколько хороших виджетов, которые делают это, просто предоставьте ему данные JSON (используйте метод кодирования PHP в вашем наборе записей). Мы поговорили с Oracle и довольно легко сделали 20-страничный пейджинг.

Если ваш большой набор записей часто обновляется, и данные должны быть точными в режиме реального времени, у вас впереди некоторые серьезные проблемы. Я бы посмотрел на комет, обезьян или веб-работников для решения опроса / толчка и создал бы ваш API, чтобы иметь дело только с обновлениями «основных» данных - опять же, вероятно, кэшируется на сервере, а не извлекается из БД каждый раз

1 голос
/ 30 сентября 2010

Ваш вызов ajax должен вызывать страницу, которая извлекает из базы данных только то количество строк, которое ему нужно. поэтому выберите первые 20 строк из запроса на первой странице и так далее. Ваш ajax-вызов может принимать параметр pagenum и в зависимости от того, какие записи вы фактически извлекаете из базы данных. нет необходимости в переменных сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...