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 加载慢的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC - Kendo Grid 慢分页

ASP.NET MVC 4 异步加载控制器

asp.net mvc是啥?

Asp.Net Core MVC 不加载视图

加载 ASP.Net MVC JSONResult jQuery DataTables

ASP.NET Mvc开发之EF延迟加载