客户端缓存具有大量数据的DropDownList

本文关键字:数据 DropDownList 缓存 客户端 | 更新日期: 2023-09-27 18:26:32

SCENARIO:我有一个GridView,它在绑定到行绑定事件的每一行中都有DropDownList。这些数据来自数据库,不会经常更改。(说它每周一次)。根据我对数据库的理解,它的命中次数与GridView中的行数一样多。为了最大限度地减少数据库命中,我可以做的一件事是使用ViewState或会话。但是,下拉数据仍将一次又一次地传输到客户端。这是一个巨大的数据(3MB)。即使我使用ajax调用,仍然会传输大量数据。这可能不是快速互联网连接的问题,但慢速互联网连接会导致速度减慢。我想知道我是否可以在客户端保存下拉数据并从那里绑定它?

我看到一篇文章,解释了如何在HTML5客户端缓存中的客户端存储数据

但我想要一个在不支持HTML5的浏览器上运行的解决方案。我的最佳选择是什么?为什么?

客户端缓存具有大量数据的DropDownList

我认为使用HTML5本地存储的方法是最好的,也是唯一可能在客户端缓存大于100kb的数据的方法,但你很难反序列化,除非你将对象作为json字符串存储到本地存储。由于本地存储或HTML5是一个问题,你可以总是使用cookie,但是,如果它真的是3mb(无法想象下拉列表的大小),那就不可能了,因为cookie可以存储最大~5KB的

如前所述,数据超过3mb也没有频繁变化。我建议做两件事,
1.不要在浏览器上存储这么多数据。使用服务器端缓存对象。如果可能,请尝试使用缓存依赖项
2.使用自动完成下拉列表之类的东西。始终将前30个(或更多)数据绑定到下拉列表以减少页面上的负载。如果数据在前30名中不可见,则自动完成将有助于搜索适当的数据。

如果这个主意有用的话,请告诉我。。