我有一个带有“Wallboard”屏幕的ASP.net MVC应用程序。问题是这个特定页面需要很长时间才能加载(它必须遍历一堆数据库并计算要显示的几个数字)。
当我点击“Wallboard”菜单项时,浏览器滚轮会在启动页面之前旋转约30秒。我知道这对用户来说非常讨厌,所以我决定将显示的字符串的先前值(上次加载页面)存储在cookie中,并在AJAX调用检索到更新的值时立即加载带有这些字符串的页面。 / p>
该页面表明它正在检索更新的值,但这些值不会经常更改,因此用户可以立即查看较旧的值。
它有效,但我的问题是,Cookie是存储这些数据的最佳方式吗?服务器根本不关心存储什么值,只是页面立即加载而不是挂起。如果页面从未加载过,那么在AJAX调用完成之前,墙板是空白的。
答案 0 :(得分:3)
不,这可能不是一个好主意,除非它是非常少量的数据。
我更合适的解决方案是使用Caching
例如,这会将数据库数据缓存30分钟,此时缓存将过期,因此访问该页面的任何人都将获得缓存版本,这将极大地加速您的网站。
Cache.Insert("key", "database-data", null, DateTime.Now.AddMinutes(30), TimeSpan.Zero);
答案 1 :(得分:0)
Cookie不是在客户端存储大量数据的正确方法,因为每次请求都会将数据传输到服务器。
我建议你看一下Local Storage API。
如果您需要存储大量数据并需要常见的数据库功能,请查看 IndexedDB