asp.net mvc 加载慢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net mvc 加载慢相关的知识,希望对你有一定的参考价值。
asp.net mvc 加载慢
我也是感觉asp.net mvc 加载慢。这个怎么解决啊?
我的首页涉及到很多数据。我是再index——action 里把所有的数据都读取出来。然后再index.aspx页里通过《%%》这样的代码显示出来的。因为我考虑到了。从access数据库里读取过慢。所以。使用了缓存。把所有的读取结果,都缓存到一个XML文件里了。再指定时间里,就不会读取数据库,但现在感觉还是有点慢。网站打开后。IE标题兰上都显示标题了。但页面是白的。要过一会才能显示出来。是不是他就像一个大table再所有的都加载完后才一起显示啊???我还发现。一些JS加载的时候有点慢。把JS停了就快很多了。我使用的香港空间。div布局当然。这个到底与那里有关系呢?我还统计了读取数据库所用的时间。时间很短。就是显示太慢了。。很郁闷。是不是我的空间有问题?
我感觉。我生成html后也后。打开那个Html也有点慢。。一会我再试试。
如果在本地(VS内测试)慢导致情况
1.可能是楼主修改了代码导致页面需要重新编译(重新编译需要占用时间)
2.程序逻辑处理不是很好,导致占用大量系统资源,(很重要的因素)
3.楼主的电脑本身问题安装的软件太多或者进程太多导致CPU处理不及时出现卡的情况,以及系统老化,IE垃圾太多导致页面无法及时显示(有一部分可能)
4.页面内组件,图片,flash等一些组成部分也会对页面造成一定影响
解决办法:
1.像楼上所说的那样,项目不是很复杂的情况下不用使用MVC,简化代码,
2.修复IE,检查系统是否老化,检查是否本机占用内存高(或者CPU使用率高)情况,
3.检查逻辑是否清晰简洁,是否存在影响系统执行代码(占用资源的代码)重启服务试试等
如果是在外网上
1.网速问题
减少页面流量,增加传输速度(减少使用flash,占用空间大的图片),做一些页面优化减少,Css样式等流量
2.更换服务器
找一个好点的服务器处理速度快一点的
导致页面加载慢情况有很多,但这些并不会对项目造成太大的影响但要尽量避免
一个好的项目取决于很多方面,呵呵 我们一起学习改进吧
这都是手打的如果有不对的地方请多指教,呵呵 大家一起进步吧 !!!! 参考技术A MVC模式加载本来就要慢一些,再加上asp.net的特性,所以第一次编译更加慢。一般大项目,逻辑性要求很强的项目才用这个,中小型项目一般不用这个的。 一般要靠优化代码来尽量解决慢的问题。在大项目中适当开多个线程。。。等 参考技术B MVC并不好 还是用shtml纯静态比较好 这样需要一个静态文件管理系统 参考技术C 应该是第一次加载时很慢伐
ASP.NET MVC5 每个 Razor 页面在第一次加载时非常慢
【中文标题】ASP.NET MVC5 每个 Razor 页面在第一次加载时非常慢【英文标题】:ASP.NET MVC5 each Razor Page very slow on first load 【发布时间】:2014-09-20 07:39:16 【问题描述】:这与第一个请求到达时所经历的延迟不同,但这是每次第一次访问基于 Razor 的视图时所经历的延迟,它可能需要一秒钟或二。对该视图的所有后续请求都非常快。即使对于不进行任何类型的编程工作(例如访问数据库等)的简单视图也会发生这种情况。
我已经确保debug=false
在配置文件system.web下的编译标签中。
我还通过 Global.asax
删除了 set Razor 作为唯一的视图引擎
什么可能导致这种延迟? 这似乎是在旧的 asp.net“网站”中遇到的问题,然后它才转移到每个 .aspx.cs 代码隐藏所在的“Web 应用程序”中在部署而不是运行时编译。 Razor 还受此困扰吗?
【问题讨论】:
【参考方案1】:该问题是由 Razor 视图的解析和编译引起的。编译视图后,它们会非常快速地执行。只有在第一次请求视图时,或者在上次编译后视图已被修改时,才会解析和编译视图。
您可以在已部署的 WebApp 上通过将视图预编译为发布过程的一部分来解决此问题。请参阅下图了解如何在 VS2012 中使用标准发布对话框进行操作。
如果您愿意,可以选择可更新选项,但对于生产站点,我不推荐它。
【讨论】:
谢谢 - 现在看起来很明显。我已经尝试过了,似乎取得了显着的进步,与之前的延迟相比,仍然存在滞后但没有任何变化。它还暴露了 VS2013 中的一个错误,它运行 32 位编译器而不是所需的 64 位编译器,一旦我解决了它就可以工作。 这对我的网站没有任何影响。每个页面的加载速度仍然很慢。 @user2444499 “允许预编译的站点可更新”设置必须设置为关闭才能预编译视图。默认开启, @Ryan 无论如何它都不起作用。我可以在 bin 中看到已编译的视图 dll,但初始渲染仍然需要和以前一样长的时间。运行VS2013,编译为64位。 对我有用的是删除 System.Web.Optimization 和 WebGrease。这还需要为您的 css 和脚本删除所有捆绑组件,但是神圣的莫利确实页面加载速度更快,它们几乎是即时的。可惜这些 NuGet 包默认包含在内。【参考方案2】:网络油脂。它会在首次加载时缩小您的生产 js 和 css 包,然后缓存它们。问题是当缩小有错误时,它会尝试每次编译,运行那里的任何错误例程。 没有错误报告,找出这种情况发生的唯一方法是直接打开参考并查看以下内容:
/* Minification failed. Returning unminified contents.
(69,1): run-time error CSS1019: Unexpected token, found '@import'
(69,9): run-time error CSS1019: Unexpected token, found '"variables.less"'
(70,1): run-time error CSS1019: Unexpected token, found '@import'
这(在上述情况下)表明您不必要的 .less 或 .sass 文件已发布 - 这通常是通配符捆绑的结果。 通配符捆绑花费的时间多于节省的时间。
【讨论】:
【参考方案3】:解析视图可能很慢。您是否尝试过使用RazorGenerator
来编译您的视图?
在 NuGet 包管理器控制台中键入 install-package RazorGenerator
,或通过 NuGet 手动安装 here。
【讨论】:
以上是关于asp.net mvc 加载慢的主要内容,如果未能解决你的问题,请参考以下文章