我正在尝试使用 jQuery AJAX。我的要求是,我希望在数据集中从数据库加载用户名,将其转换为 JSON 格式并将其存储在内存中或使用 jQuery 数据以供用户浏览我的网站时使用,即会话。这样我可以使用自动完成或我自己的代码向用户显示数据。
谁能帮我设计这样的场景?
超越 cookie、Google Gears 和专有解决方案
标准化,无需特殊插件。可通过 JavaScript/jQuery 编写脚本。尽管仅在最新的浏览器中受支持,但您可以使用HTML 5 Web Storage,即localStorage和sessionStorage属性,旨在在页面请求之间的网站上下文中保持客户端的状态。比饼干多得多。例如IE 8 DOM 存储规范(10 MB 客户端存储)、Firefox DOM 存储规范。
还有YUI 2 Storage Utility,它根据浏览器支持的内容为您抽象存储(HTML 5、Google Gears、SWF):
无论您的浏览器是否支持提议的 HTML 5 存储规范,存储实用程序都提供了一种在客户端存储大量文本数据的机制。
Google Gears是我所知道的唯一解决方案,但它需要用户安装它并且只能在少数浏览器上运行。但是,$.getJSON
当用户说...时,您可以使用从您的服务器获取用户列表,JSON 编码和 gzip 压缩...聚焦自动完成的搜索框,然后使用积极的客户端资源缓存来减少点击您的数据库。
如果它是一个很长的用户列表,您可能想要考虑使用 memcached 来存储列表,或者可能将其写入文件并直接由您的前端服务器提供服务(即 Nginx、Lighttpd、Apache:漂亮很多避免运行数据库查询的东西)
JQuery 数据可能没有用,因为当您从一个页面切换到下一个页面时,您会丢失数据,但是您可以使用 COOKIES 执行此操作——有一个jQuery cookies 插件可以让您更轻松。
会话意味着服务器端。jQuery 表示客户端。您无法在两者之间进行翻译。Cookies 是您希望严格保持客户端的最佳方式。
我一直在使用PersistJS并取得了巨大的成功,几乎可以完成您所描述的事情。这是一个轻量级插件(< 10k),它使用以下任何可用后端抽象出客户端存储:
它根据浏览器功能和已安装的插件透明地选择最佳存储后端。它适用于:
...如果其他持久性存储选项都不起作用,则可以选择回退到 cookie。DOM 存储方法为您提供至少几兆字节的存储空间;如果您使用 cookie,您将被限制在大约 4kB。