每次ajax请求controller初始化是你不能控制的,但是你可以在action中做一些优化。比如某些数据在某段时间内是相对不会变化的,那你可以在用户第一次请求的时候把这些数据放入缓存cache,下次用户请求的时候先去cache中查找,没有的话再去查询数据库。如果数据针对某个用户就用session缓存,如果针对全部用户就用cache。
你都用AJAX了,就是需要事实刷新与操作,mvc这里的设计就是Controller –> Controller.Execute() –> 释放Controller对象,你的频繁重新初始化controller是什么意思,与频繁查询数据库有什么关系,这就是MVC成主流,winform慢慢被淡去的一个原因
web本身就是没有状态的,你可以将数据放到缓存中,但ajax本身就是局部更新使用的
Controller的话,可以用依赖注入方式,对于频繁查询数据库,和是Winform还是mvc没关系,关键在于你是否要去查数据库。完全可以把查询出来的数据,放在静态静态中,下次直接取。当然,由于web是一(服务端)对多(用户),所以与用户相关的对象需要放在该用户的名下。前提的你的内存够大~