当用户在我的ASP.NET MVC4应用程序中未通过身份验证时,将显示一个登录表单。成功通过身份验证后,他会被重定向到主页,在那里他会看到我的MS SQL数据库中一个表中的最新数据。
为了加快数据加载过程,我想在显示登录表单的同时在后台预取该数据库表中的所有数据。也就是说,我希望立即为视图提供服务,并在用户输入其凭据时在后台继续预取。我曾尝试使用Task和Thread对象,但我无法让数据真正异步加载;相反,只有在加载完成后才会显示登录视图。
我怎样才能让数据异步加载?
发布于 2011-12-21 10:06:03
我建议你像你想的那样使用serviceAutoStartProvider来获取/保持你的应用缓存:
Auto-Start ASP.NET Applications (VS 2010 and .NET 4.0 Series)
发布于 2011-12-21 09:42:16
我不认为基于点击登录屏幕为另一个页面预取数据真的是解决问题的最佳方法,例如,如果用户登录被拒绝,显然预取无论如何都是没有价值的。此外,我甚至不认为有可能启动一个进程来填充您在访问页面时返回的内容。也许如果你使用像Ninject这样的依赖注入框架,并拥有一个单例作用域实例。
数据是否根据已登录的用户进行自定义?如果数据不是基于登录的用户定制的,只是一个运行的静态查询,我会考虑使用SQL OutputCache()属性和small example of it being used在主页上缓存这些数据,如果你能负担得起的话,如果你需要最新的数据,我可能会考虑将结果存储到一个SQL表或视图中,只检索一组平面信息,这当然会比复杂的查询快得多,我假设这就是占用你时间的东西。
https://stackoverflow.com/questions/8584036
复制相似问题