jQuery存储会话数据

时间:2010-05-03 03:35:28

标签: jquery memory session caching store

我正在尝试使用jQuery AJAX。我的要求是,我希望从数据集中的DB加载用户名,将其转换为JSON格式并将其存储在内存中或使用jQuery数据供用户浏览我的网站时使用,即会话。这样我就可以使用自动完成或我自己的代码向用户显示数据。

有人可以帮我设计这样的场景吗?

6 个答案:

答案 0 :(得分:4)

HTML 5网络存储

超越Cookie,Google Gears和专有解决方案

标准化,无需特殊插件。可通过JavaScript / jQuery编写脚本。虽然仅在最新的浏览器中受支持,但您可以使用HTML 5 Web Storage,即 localStorage sessionStorage 属性,旨在在网站的上下文中保持客户端的状态页面请求之间。比饼干还要多得多。例如IE 8 DOM storage spec(10 MB客户端存储),Firefox DOM storage spec

答案 1 :(得分:1)

还有YUI 2 Storage Utility根据浏览器支持的内容抽取存储空间(HTML 5,Google Gears,SWF):

  

Storage Utility提供了一个   存储重要的机制   大量文本数据,客户端,   您的浏览器是否支持   建议的HTML 5存储   说明书

答案 2 :(得分:0)

JQuery数据可能没用,因为当你刷新页面时,当你从一个页面转到另一个页面时会丢失数据,但是你可以使用COOKIES执行此操作 - 有一个jQuery cookies plugin将会生成对你来说更容易。

答案 3 :(得分:0)

会话意味着服务器端。 jQuery意味着客户端。你不能在两者之间进行翻译。 Cookies是您希望保持严格客户的最佳选择。

答案 4 :(得分:0)

Google Gears是我所知道的唯一解决方案,但它要求用户安装它并且只能在少数浏览器上运行。但是,当用户说...聚焦自动完成的搜索框,然后使用积极的客户端资源缓存时,您可以使用$.getJSON从服务器获取用户列表(JSON编码和gzip)减少数据库的点击次数。

如果这是一个很长的用户列表,您可能需要考虑使用memcached来存储列表,或者将其写入文件并让它由您的前端服务器直接提供(即Nginx,Lighttpd, Apache:几乎可以避免运行数据库查询的任何事情)

答案 5 :(得分:0)

我一直在使用PersistJS取得巨大成功来完成您所描述的内容。它是一个轻量级插件(< 10k),它使用任何这些可用的后端来抽象客户端存储:

  • flash:Flash 8持久存储。
  • 齿轮:基于Google Gears的持久存储。
  • localstorage:HTML5草稿存储。
  • whatwg_db:HTML5草案数据库存储。
  • globalstorage:HTML5草稿存储(旧规范)。
  • ie:Internet Explorer用户数据行为。
  • cookie:基于Cookie的持久存储。

它根据浏览器功能和已安装的插件透明地选择最佳存储后端。它适用于:

  • globalStorage:Firefox 2.0 +,Internet Explorer 8
  • localStorage:开发WebKit
  • openDatabase:Safari 3.1+
  • userdata行为:Internet Explorer 5.5+

...如果其他任何持久存储选项都不起作用,则可选择回退到cookie。 DOM存储方法为您提供至少几兆字节的存储空间;如果你回到cookie,你将被限制在大约4kB。