我应该使用cookie来加快仪表板的响应速度吗?

时间:2016-02-17 17:43:39

标签: javascript c# asp.net cookies

我有一个带有“Wallboard”屏幕的ASP.net MVC应用程序。问题是这个特定页面需要很长时间才能加载(它必须遍历一堆数据库并计算要显示的几个数字)。

当我点击“Wallboard”菜单项时,浏览器滚轮会在启动页面之前旋转约30秒。我知道这对用户来说非常讨厌,所以我决定将显示的字符串的先前值(上次加载页面)存储在cookie中,并在AJAX调用检索到更新的值时立即加载带有这些字符串的页面。 / p>

该页面表明它正在检索更新的值,但这些值不会经常更改,因此用户可以立即查看较旧的值。

它有效,但我的问题是,Cookie是存储这些数据的最佳方式吗?服务器根本不关心存储什么值,只是页面立即加载而不是挂起。如果页面从未加载过,那么在AJAX调用完成之前,墙板是空白的。

2 个答案:

答案 0 :(得分:3)

不,这可能不是一个好主意,除非它是非常少量的数据。

我更合适的解决方案是使用Caching

例如,这会将数据库数据缓存30分钟,此时缓存将过期,因此访问该页面的任何人都将获得缓存版本,这将极大地加速您的网站。

Cache.Insert("key", "database-data", null, DateTime.Now.AddMinutes(30), TimeSpan.Zero);

答案 1 :(得分:0)

Cookie不是在客户端存储大量数据的正确方法,因为每次请求都会将数据传输到服务器。

我建议你看一下Local Storage API

如果您需要存储大量数据并需要常见的数据库功能,请查看 IndexedDB