ClientSide使用大量数据缓存DropDownList?

时间:2015-12-11 05:02:16

标签: c# asp.net .net caching gridview

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

我发现了一篇文章,解释了我如何在HTML5 CLIENT SIDE CACHING

中的客户端存储数据

但我想要一个适用于不支持HTML5的浏览器的解决方案。我最好的选择是什么?为什么?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

如果这个想法有帮助,请告诉我。