mvc性能优化
(1)移动设备卡顿问题
-1请求方式
在mvc中GET请求有问题,出现错误
在MVC中在进行GET请求获取JSON数据时,需要进行如下设置:
return Json("",JsonRequestBehavior.AllowGet);
建议:在进行Ajax请求时,是什么请求方式,请采取对应的方式来进行请求
—2请求路径
在实际开发中我们可能会经常这样做:我们将需要用到的一些脚本方法,比如格式日期转换,获取cookie等封装在一个公用脚本中来方便调用。
在脚本中进行请求时我们一般进行如下:
$(function () { type: 'get', url: "/home/Info", data: {}, success: function () { }, dataType: "application/json" }); });
同事这样做的,将请求路径写在公用脚本中如下:
var path = "/"
此时我们的请求就变成了这样:
$(function () { $.ajax({ type: 'get', url: path + "home/Info", data: {}, success: function () { }, dataType: "json" }); });
建议使用第一种方法,至此也就大致上解决了在手机上滑动时卡顿的问题,当然也不排除脚本写的有问题的情况。
缓存
在页面请求时为了那些不会改变的脚本或者数据从而加快页面加载速度,我们通常使用缓存来解决。
脚本、样式缓存
get或post快慢问题-他人看法
1.请求响应速度的快慢与get或post请求方式肯定是无关的,post请求从协议上来说也就比get请求多两个换行符,网络传输、以及服务端的协议解析可以忽略。如果响应慢需要查明原因的话,建议进行日志跟踪以及抓包分析一下。
2.关于缓存的问题。
“ 在进行请求时,有些不会改变的脚本我们需要进行缓存,而不是每请求一次而又重新加载一次,当然此时就有人想到了怎么样去缓存脚本的问题,比如如下:
<script src="~/Scripts/video.js?2016040901"></script> ”
这个理解是错的,这样做其实并不是为了做缓存,反而是为了强制进行缓存刷新,避免浏览器加载旧的缓存样式或脚本造成更新的页面出现问题(这种情况在使用CDN情况下特别明显)。静态资源不管是放IIS下还是用第三方云存储,其实都会默认开启缓存的,如果楼主想了解更深可以去研究一下Last-Modified,Etag,Expire 等http头,以及http相关的缓存控制就是304啦。
如果你的网站的访问量大,强烈建议把静态文件进行单独布署,现在云存储、CDN都很便宜很方便,可以尝试一下。用完保证省心省力省时而且速度绝对飞快,就是废点钱(其实有流量了,这点钱真的小意思)。
页面级别的缓存其实并不是怎么推荐使用OutputCache来做,可控性太小自定义很麻烦。如果有页面缓存需要可以考虑静态化或部分静态化,当然自己做后端数据的缓存(如: memcached)会更靠谱一些。
3.忍不住吐糟一下,其实你这个些优化方面的问题本质 上和asp.net mvc没啥联系,是web开发中比较通用和常用的。