记一次Ajax请求MVC调优

问题描述

ASP.NETMVC项目,编辑页面赋值操作,ajax请求很慢。

对同一个控制器有2个请求

一个为获取该表的树形结构数据(绑定下拉框)

一个为获取某实体的单条记录(编辑操作)

记一次Ajax请求MVC调优

排查过程

数据库

该页面的表只有12个字段,且数据也只有98条,

直接在数据库中执行查询语句也很快,一般在0.03s左右,所以不是数据库方面的问题。

记一次Ajax请求MVC调优

 HTML

百度搜到的文章   https://segmentfault.com/q/1010000004712152

里面提到了几个点

(1)DOM操作会很慢。

于是将页面所有的DOM赋值操作都注释,但没起效果。

(2)发起异步请求

查看ajax请求,都是异步请求,没有用。

(3)分析HTTP请求时间

查看HTTP过程,时间都耗在Waiting (TTFB)上,所以问题好像是在服务器端响应的处理上。

记一次Ajax请求MVC调优

 解决办法

经过排查,怀疑问题在服务器端响应的处理上,

于是搜索:ASP.NETMVC响应ajax请求的时间限制

搜索到的文章提示了:Session锁,感觉找到问题所在了。

处理办法

Controller添加[SessionState(SessionStateBehavior.ReadOnly)] 的特性

注意:添加特性后,该Controller都不能修改Session了,只能读取

记一次Ajax请求MVC调优

相关文章

https://www.cnblogs.com/han2017/p/9603501.html

记一次Ajax请求MVC调优

https://www.cnblogs.com/OpenCoder/archive/2010/01/10/1643659.html

记一次Ajax请求MVC调优

https://www.cnblogs.com/fanqie-liuxiao/p/5702633.html

记一次Ajax请求MVC调优

http://www.cocoachina.com/articles/97693

记一次Ajax请求MVC调优