2

我有一个网站,其中有很多combo boxesauto-complete textboxes,它从数据库主机中获取数据。

我不希望每次用户输入登录信息或页面刷新时都加载数据。

为客户端加载和存储数据的最有效、最安全和最快的方法是什么。还考虑一个中型数据库。

我尝试了一些事情,例如,

  1. 存储在Javascript数组中 - 一旦用户刷新,它就会丢失。
  2. 包括Servlets加载数据和在页面上填写,刷新也有同样的问题。
  3. 需要时使用ajax和填充。
  4. server side通过加载一次来存储数据,这节省了我每次查询数据库的时间。但是每次注销/登录时都必须对其进行维护。

有没有比这更好的方法

PS尽量不要让这个太主观,请只回复带有简要描述的方法。

4

4 回答 4

1

您应该考虑使用HTML5 本地存储

这是一个演示

和一个教程

于 2012-06-20T05:48:06.623 回答
1

HTML5 本地存储应该适合您,但是,如果您希望它在不支持 HTML5 的旧浏览器上工作,请查看:http ://code.google.com/p/sessionstorage/

我以前在不同的应用程序中使用过它,效果很好。另外,为什么不使用好的旧饼干呢?

于 2012-06-20T06:12:29.947 回答
0

它还取决于查询和加载数据的设置。ASP.NET 有一些非常好的内置缓存,可以设置这些缓存来避免整个问题。

最终,在任何给定的项目中,我发现我使用了一些不同的选项;
page caching(因此服务器缓存页面输出),
session cookies用于保存可以在站点周围携带的某些数据,
persistant cookies如果需要,
某些数据适合由 携带QueryStrings,一些适合ajaxjson设置来按需获取数据,最后一些只适合普通查询并加载到页面中。

有了所有这些,您就可以为工作选择合适的工具了。200 个字符的字符串不适合传入QueryString. 如果它只在一页上使用一次,那么把它放在一个session cookie可能是合适的。如果要经常更新,那么ajax/json调用可能会更好。

然而, anID更适合在 a 中传递QueryString,以及表单值(比如下拉列表的索引)等等。

作为最后一点,值得检查这些对数据库的查询花费了多长时间,因为您可能会为毫秒级的返回付出很多努力。

于 2012-06-20T06:57:09.710 回答
0

HTML5 本地存储似乎是一个很好的解决方案,但如果 HTML5 不适合您,我会通过简单地序列化选项并将其保存到 cookie 中做与您过去尝试做的类似的事情。

于 2012-06-20T19:46:39.330 回答