2015-03-09 3 views
-1

У меня есть контроллер, который загружает огромные данные при загрузке контроллера, но я не хочу получать эти данные снова и снова при загрузке контроллера. Он будет загружаться только тогда, когда одни и те же данные будут изменены или отредактированы. здесь я даю сценарий:Каков наилучший способ хранения данных на стороне клиента (угловые js)?

У меня есть контроллер listController, когда он загружает его, получает огромные данные из базы данных. и он отображает список данных на соответствующей странице (list.html). сейчас, когда

  1. Перемещаю другую страницу и снова переходим на ту же страницу (list.html). В этом случае контроллер снова загрузится и будет получать огромные данные, но я не хочу загружать эти огромные данные. Я хочу старые данные, потому что он задерживает выборку данных из БД, и данные не изменяются.

  2. Существует опция редактирования списка данных. Когда я редактирую одни и те же данные (находится под другим контроллером) и сохраняю. В этом случае он перенаправляется на страницу list.html и должен загружать огромные данные (поскольку в этом случае данные изменяются).

Я искал много, я получил, что это хороший вариант для этого, но есть ли другой способ сделать это. Является ли кеш хорошим способом справиться с этим?

Спасибо !!!

+3

, а не хранения больших объемов данных на стороне клиента, то не передают данные на стороне клиента .. использование пагинацией, только получить столько данных, сколько нужно – harishr

+0

Вы правы @entre, но что, если я заберу данные huze? –

+0

As @entre упомянутый использование разбиение на страницы. Я не вижу другого варианта, кроме кэширования. А также после изменения записей вам нужно нажать на БД, чтобы получить измененные записи, и нет другого пути. – sms

ответ

1

Разум советует использовать пагинацию, чтобы избежать ненужных пауз. Pagination - общий подход для распределенных приложений с массивными данными.

Однако, если вы оказываетесь еще ищете постоянного клиента хранения данных на стороне изучить angular local storage

1

Одна вещь, которую вы можете сделать, это сохранить данные в каком-то родительском контроллере, а не в listController (чтобы данные не были снова загружены при перезагрузке list.html) и извлечены данные из этого родительского контроллера.

вы должны использовать кэш также как:

$http.get(url, { cache: true}).success(...); - это будет кэшировать ответ.

Вы можете использовать его самостоятельно, используя $cacheFactory.

Но всегда лучше хранить данные в какой-то сервер баз данных (использование MongoDB, например, его очень гладкая)