首页 新闻 会员 周边 捐助

在mvc中,每次用ajax调用controller中的action都需要重新初始化整个controller?

0
悬赏园豆:30 [已解决问题] 解决于 2015-09-07 08:28
asp.net mvc ajax调用controller中action的时候,好像每次都调用完,controller实例就会被释放, 下次再调用的时候的还需要重新初始化controller, 有没有什么办法能够像winform一样controller能够一直保持状态,这样就不需要频繁查询数据库了。
enhron的主页 enhron | 初学一级 | 园豆:175
提问于:2015-09-03 15:44
< >
分享
最佳答案
0

每次ajax请求controller初始化是你不能控制的,但是你可以在action中做一些优化。比如某些数据在某段时间内是相对不会变化的,那你可以在用户第一次请求的时候把这些数据放入缓存cache,下次用户请求的时候先去cache中查找,没有的话再去查询数据库。如果数据针对某个用户就用session缓存,如果针对全部用户就用cache。

收获园豆:10
DeeRoad | 初学一级 |园豆:3 | 2015-09-05 10:23
其他回答(3)
0

你都用AJAX了,就是需要事实刷新与操作,mvc这里的设计就是Controller –> Controller.Execute() –> 释放Controller对象,你的频繁重新初始化controller是什么意思,与频繁查询数据库有什么关系,这就是MVC成主流,winform慢慢被淡去的一个原因

收获园豆:8
稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-03 16:40
0

web本身就是没有状态的,你可以将数据放到缓存中,但ajax本身就是局部更新使用的

收获园豆:2
秋壶冰月 | 园豆:5903 (大侠五级) | 2015-09-03 17:56
0

Controller的话,可以用依赖注入方式,对于频繁查询数据库,和是Winform还是mvc没关系,关键在于你是否要去查数据库。完全可以把查询出来的数据,放在静态静态中,下次直接取。当然,由于web是一(服务端)对多(用户),所以与用户相关的对象需要放在该用户的名下。前提的你的内存够大~

收获园豆:10
幻天芒 | 园豆:37207 (高人七级) | 2015-09-03 23:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册