Как создать страницу ColdFusion для обновления массива данных между запросами без использования области SESSION? - PullRequest
2 голосов
/ 28 февраля 2012

Это скорее концептуальный вопрос.У меня есть работающее приложение, которое позволяет пользователям загружать CSV-файл адресов, затем анализировать данные в массиве объектов Address, а затем проверять каждый объект Address на соответствие определенным правилам (определенные поля являются обязательными и т. Д.).Затем на странице отображаются все адреса, которые не прошли проверку, давая пользователю возможность редактировать или удалять каждый из них.

Сейчас я сохраняю весь массив в переменной SESSION, назначая каждому адресу значение Id, затем обновляякаждый адрес в массиве SESSION, когда пользователь вносит изменения и отправляет форму.

Я пытаюсь придумать способ сделать это без использования области SESSION, физической базы данных или физического файла.Есть идеи?

Ответы [ 3 ]

1 голос
/ 28 февраля 2012

Данные должны храниться / сохраняться где-то , если вы хотите работать с ними по нескольким запросам. Помимо опций, которые исключает ваш вопрос (сеанс, база данных, файл), я могу подумать о двух других (неидеальных) опциях:

  1. Механизм внешнего кэширования, такой как memcached - не обязательно рекомендуется, поскольку он по своей природе нестабилен и не гарантирует сохранение ваших данных

  2. Передача содержимого CSV от запроса к запросу, например, через скрытую ФОРМУ, содержащую JSON - не рекомендуется, если CSV может стать большим

Лично я и мои коллеги склонны использовать временное хранилище базы данных для такого типа проблем.

1 голос
/ 28 февраля 2012

Я ничего не знаю о ваших требованиях или вариантах использования, но если вы можете рассчитывать на то, что современные браузеры зависят от ваших пользователей, другой жизнеспособный вариант - HTML5 localStorage.

Изучение некоторых вопросов может дать вам некоторые идеи.

1 голос
/ 28 февраля 2012

Если вы не используете физическую базу данных, вам придется использовать какую-то постоянную область видимости. Это означает область SESSION, область CLIENT (если она включена), область APPLICATION или область SERVER. Но я думаю, что самый безопасный способ (поскольку все эти постоянные области очищаются, если ваш сервер выходит из строя), это хранить их в базе данных - независимо от того, является ли эта база данных СУБД, текстовым файлом или коллекцией Verity или Solr. Я заранее прошу прощения, если это не ответит на ваш вопрос.

...