记一次Ajax请求MVC调优

Posted 我有我奥妙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次Ajax请求MVC调优相关的知识,希望对你有一定的参考价值。

问题描述

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

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

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

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

 

 

排查过程

数据库

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

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

 

 

 html

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

里面提到了几个点

(1)DOM操作会很慢。

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

(2)发起异步请求

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

(3)分析HTTP请求时间

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

 

 

 解决办法

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

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

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

处理办法

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

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

 

 

相关文章

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

 

 

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

 

 

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

 

 

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

 

以上是关于记一次Ajax请求MVC调优的主要内容,如果未能解决你的问题,请参考以下文章

MVC_Ajax请求

MVC4 AspNet MVC下的Ajax / 使用JQuery做相关的Ajax请求

ASP.NET MVC 实现AJAX跨域请求方法《1》

记一次Grpc接口压力测试&性能调优

mvc从前台发送ajax请求得到的数据显示未定义(undefined),哪位帮忙看看

ASP.NET MVC Ajax 伪造请求