jQuery для хранения данных для сессий - PullRequest
1 голос
/ 03 мая 2010

Я пытаюсь использовать JQuery AJAX. Что мне нужно, так это то, что я хочу загрузить имена пользователей из БД в наборе данных, преобразовать их в формат JSON и сохранить их в памяти или использовать данные jQuery для использования, пока пользователь просматривает мой сайт, т.е. для сеанса. Таким образом, я могу использовать автозаполнение или свой собственный код для отображения данных пользователю.

Может кто-нибудь помочь мне разработать такой сценарий?

Ответы [ 6 ]

4 голосов
/ 03 мая 2010

HTML 5 Web Storage

не ограничивайтесь файлами cookie, Google Gears и проприетарными решениями

Стандартизирован, специальный плагин не требуется. Скрипт через JavaScript / JQuery. Хотя поддерживается только в последних браузерах, вы можете использовать HTML 5 Web Storage , а именно localStorage и sessionStorage , предназначенные для сохранения состояния на стороне клиента в контексте веб-сайта между запросами страницы. Держит чертовски много больше, чем печенье. Например, Спецификация хранилища IE 8 DOM (10 МБ на стороне клиента), Спецификация хранилища Firefox DOM .

1 голос
/ 03 мая 2010

Существует также YUI 2 Storage Utility , которая абстрагирует хранилище для вас (HTML 5, Google Gears, SWF) в зависимости от того, что поддерживает браузер:

Утилита хранения обеспечивает механизм хранения значимых объемы текстовых данных, на стороне клиента, поддерживает ли ваш браузер предлагаемое хранилище HTML 5 спецификация.

0 голосов
/ 03 мая 2010

Я с большим успехом использую PersistJS , чтобы делать то, что вы описываете. Это легкий плагин (<10k), который абстрагирует хранилище на стороне клиента, используя любой из следующих доступных бэкэндов: </p>

  • вспышка: Flash 8 постоянного хранилища.
  • gears: постоянное хранилище на основе Google Gears.
  • localstorage: хранилище черновиков HTML5.
  • whatwg_db: черновое хранилище базы данных HTML5.
  • globalstorage: черновое хранилище HTML5 (старая спецификация).
  • то есть: поведение пользовательских данных Internet Explorer.
  • cookie: постоянное хранилище на основе cookie.

Он прозрачно выбирает лучший бэкэнд хранилища на основе возможностей браузера и установленных плагинов. Работает с:

  • globalStorage: Firefox 2.0+, Internet Explorer 8
  • localStorage: разработка WebKit
  • openDatabase: Safari 3.1+
  • поведение пользовательских данных: Internet Explorer 5.5+

... и, при необходимости, возвращается к файлам cookie, если ни один из других параметров постоянного хранения не работает. Методы хранения DOM дают вам как минимум несколько мегабайт дискового пространства; Вы будете ограничены примерно 4 КБ, если откажетесь от файлов cookie.

0 голосов
/ 03 мая 2010

Google Gears - единственное известное мне решение для этого, но оно требует от пользователя установки и работает только в нескольких браузерах. Однако вы можете использовать $.getJSON для получения списка пользователей, закодированных в JSON и gzipped, с вашего сервера, когда пользователь скажет ... фокусирует окно автозаполнения поиска, а затем использует агрессивное кэширование ресурсов на стороне клиента для количество посещений вашей базы данных.

Если это довольно длинный список пользователей, вы можете захотеть использовать memcached для хранения списка или записать его в файл, и он будет обслуживаться напрямую вашим интерфейсным сервером (например, Nginx, Lighttpd, Apache: почти все, что позволяет избежать выполнения запросов к БД)

0 голосов
/ 03 мая 2010

Сеансы означают серверную часть. JQuery означает клиентскую сторону. Вы не можете перевести между ними. Куки - это лучшее, на что вы можете надеяться, оставаясь строго клиентскими.

0 голосов
/ 03 мая 2010

Данные JQuery могут быть бесполезны, потому что вы потеряете данные при переходе с одной страницы на другую при обновлении страницы, однако вы можете сделать это с помощью COOKIES - есть плагин jQuery cookies это облегчит вам жизнь.

...