jQuery自动完成的服务器端缓存策略?

时间:2011-10-03 17:37:07

标签: jquery sql-server asp.net-mvc jquery-ui autocomplete

我正在我的网站上实现多个标记字段,包括使用jquery UI插件的自动完成选项。我有一切工作,虽然小部件本身并不像我希望的那样健壮(例如,有没有办法让列表中的第一个项目突出显示),但它现在可以使用。

我的问题是处理服务器端对自动填充数据的请求。现在我正在使用AJAX来检索所提供输入术语的潜在匹配。我正在点击的表中有大约10,000条记录,而我的想法是,我可以只在服务器上的共享/静态属性中缓存这些记录的列表(我正在使用ASP),而不是不断地查询该表。 NET MVC与SQL Server后端的方式)和查询该列表而不是。我会每隔4个小时更新一次清单,只是为了让它保持最新状态。

这个想法显然是为了减轻我的SQL服务器的压力,并最大限度地提高自动完成下拉的性能。 我最终想知道的是,在我的服务器上保留10,000个值的列表/数组是不好的做法;这里有一个已知的限制/阈值吗?我的服务器有2GB的RAM,无论如何都可能需要很快升级。

我们非常感谢任何建议。

谢谢你的时间!

2 个答案:

答案 0 :(得分:2)

为什么不使用asp.net mvc提供的OutputCache属性。它比将它们存储在内存中更好,只需让框架为你处理它。

您可以轻松设置超时等。

答案 1 :(得分:2)

10,000个小字符串不应该太糟糕 - 我之前没有明显的副作用。

我建议在没有内存中的项目的情况下运行您的应用程序,然后再使用,并查看Windows中任务管理器中的内存和CPU使用情况,只是为了了解您真正耗尽了多少内存 - 这将有助于确定它是否会导致问题。

但每次点击数据库可能也不会那么糟糕 - 除非你有大量的流量,效果可能会微不足道。