当前位置:编程学习 > C#/ASP.NET >>

.NET网站速度问题 (加载出现4-5秒空白页面)

.NET 网站,启用了 gzip压缩,访问速度慢,输入网址后,会有4-5秒的空白页面,之后才出现网页内容,领导说空白时间太长,速度慢,度娘一个周了,没有实质的效果,请大家帮忙出出主意啊,急求啊!救命啊! .NET 速度 空白页面 网站加速 --------------------编程问答-------------------- 总得先找到问题再去有针对性地搜索
网站慢有很多原因,排除接入商的问题
客户端问题(中毒,网络异常)
html或者js问题(html标签未封闭或写错,js死循环,timer使用不规范或者没有clear==)
不良外链
服务器忙
程序设计上的问题(导致Request的生命周期中一个或者多个被拉长)
服务端处理时出错
数据库异常(连接数过多或者锁表==)
暂时想到这么多

你可以先将首页存一个html传上去(不连数据库),如果还很慢,可以排除后面三种 --------------------编程问答-------------------- 用f12 devtools、firebug等工具的性能检测功能看看是哪里耗时比较多。 --------------------编程问答--------------------  
我把首页导成一个html之后,访问还是会出现4-5秒的空白时间,给人感觉是不是网站没东西,然后4-5秒后就出现页面了,
动态的页面在本机上测试,不存在空白页面时间,秒开啊,在服务器上就不行了,服务器是联通(cpu X3220,2G内存),客户端是电信的,跨网会影响速度,可怎么会这么长呢,4-5秒呢 是空白的,客户端联通访问,也会有2秒的空白时间
引用 1 楼 dongxinxi 的回复:
总得先找到问题再去有针对性地搜索
网站慢有很多原因,排除接入商的问题
客户端问题(中毒,网络异常)
html或者js问题(html标签未封闭或写错,js死循环,timer使用不规范或者没有clear==)
不良外链
服务器忙
程序设计上的问题(导致Request的生命周期中一个或者多个被拉长)
服务端处理时出错
数据库异常(连接数过多或者锁表==)
暂时想到这么多

你可以先将首页存一个html传上去(不连数据库),如果还很慢,可以排除后面三种
--------------------编程问答--------------------
引用 2 楼 devmiao 的回复:
用f12 devtools、firebug等工具的性能检测功能看看是哪里耗时比较多。

用工具看了,在空白时间内,会在加载js和图片,可图片做了 延时加载了啊,像是页面预读一遍之后在加载出现页面,现在就想输入网址之后,先出现点东西(导航之类的),让客户知道网站是能打开的,不然在那4-5秒的空白等待,会误以为打不开,现在就是这个问题 --------------------编程问答-------------------- 4,5秒确实有点长啊。本地快,服务器慢,看起来是内容太大了,网络传输比较慢,本地没有这个问题。
尝试减小图片体积,js在最后加载,并且压缩一下。js, Html中不要的东西尽量删除。 --------------------编程问答-------------------- js放在最后加载,看看这篇文章:
Where To Include JavaScript Files In A Document
http://robertnyman.com/2008/04/23/where-to-include-javascript-files-in-a-document/ --------------------编程问答-------------------- 将JS放到页面最后!
JS的加载会导致页面变慢。 --------------------编程问答-------------------- 另外,可以尝试使用一些站长工具网站,检测一下你的页面。
看看加载慢是因为什么原因。
--------------------编程问答--------------------
引用 楼主 Minigore 的回复:
.NET 网站,启用了 gzip压缩,访问速度慢,输入网址后,会有4-5秒的空白页面,之后才出现网页内容,领导说空白时间太长,速度慢,度娘一个周了,没有实质的效果,请大家帮忙出出主意啊,急求啊!救命啊!


楼主把网址贴上来啊,大家好能针对性看看 --------------------编程问答--------------------
引用 9 楼 u011096386 的回复:
Quote: 引用 楼主 Minigore 的回复:

.NET 网站,启用了 gzip压缩,访问速度慢,输入网址后,会有4-5秒的空白页面,之后才出现网页内容,领导说空白时间太长,速度慢,度娘一个周了,没有实质的效果,请大家帮忙出出主意啊,急求啊!救命啊!


楼主把网址贴上来啊,大家好能针对性看看
 
网址:http://www.aucanlink.com/大家看看把,JS能放到后面的都放了,实在没法了现在 --------------------编程问答--------------------
引用 5 楼 findcaiyzh 的回复:
4,5秒确实有点长啊。本地快,服务器慢,看起来是内容太大了,网络传输比较慢,本地没有这个问题。
尝试减小图片体积,js在最后加载,并且压缩一下。js, Html中不要的东西尽量删除。

JS放最后了,也压缩了,CSS也压了,图片是多,做了延时加载了,可在这段空白时间, 用工具看到,图片也是在通信预读,虽然没显示, --------------------编程问答-------------------- 是不是网页上文字太少了?
将各个DIV的高度宽度固定下,然后放入一些文字,就可以点击了。
让图片慢慢加载吧。
很多网站图片不做延时加载,页面也读取挺快。只不过图显示的慢。

或许是延时加载卡住了? --------------------编程问答-------------------- 第一次慢,第二次很快啊。 --------------------编程问答--------------------
引用 12 楼 Jsy000 的回复:
是不是网页上文字太少了?
将各个DIV的高度宽度固定下,然后放入一些文字,就可以点击了。
让图片慢慢加载吧。
很多网站图片不做延时加载,页面也读取挺快。只不过图显示的慢。

或许是延时加载卡住了?

不少啊,一些新闻和图片,主要是这两,网站:http://www.aucanlink.com/ --------------------编程问答--------------------
引用 13 楼 findcaiyzh 的回复:
第一次慢,第二次很快啊。

是啊,关键想改这个第一次加载呢,我们毕竟是要有新客户的,如果他们首次访问就慢,那效果很不好啊, --------------------编程问答-------------------- 是不是网速问题???
第一次点开虽然比第二次慢,但是也就一秒多。我们这儿网速也说不上好 --------------------编程问答--------------------
引用 16 楼 Jsy000 的回复:
是不是网速问题???
第一次点开虽然比第二次慢,但是也就一秒多。我们这儿网速也说不上好

服务器联通5M专线呢,我电信客户端打开,第一次4-5秒等待,第二次,秒开了就,这个第一次不好办啊 --------------------编程问答-------------------- 不需要立即加载的js(比如广告,图片延迟加载..),可以放在页面靠后的地方
<script type="text/javascript" defer="defer"></script>延迟加载脚本
服务器联通5M也太慢了吧,上面架的网站多,你分到的带宽也只是一部分
居民宽带都已经几十M了,考虑换接入商吧 --------------------编程问答-------------------- 中间部分全部是 动态从数据库获取的?
中间部分那么多标签栏目,不知是一次数据全取出还是每一个栏目取一次
建议用ajax,或者cache 来访问
--------------------编程问答--------------------
引用 19 楼 u011096386 的回复:
中间部分全部是 动态从数据库获取的?
中间部分那么多标签栏目,不知是一次数据全取出还是每一个栏目取一次
建议用ajax,或者cache 来访问

中间每个国家就两个栏目是动态的,每一个各取一次,关键是我导成htm浏览也是这个速度
导成htm:http://www.aucanlink.com/123.htm
--------------------编程问答--------------------
引用 20 楼 Minigore 的回复:
Quote: 引用 19 楼 u011096386 的回复:

中间部分全部是 动态从数据库获取的?
中间部分那么多标签栏目,不知是一次数据全取出还是每一个栏目取一次
建议用ajax,或者cache 来访问

中间每个国家就两个栏目是动态的,每一个各取一次,关键是我导成htm浏览也是这个速度
导成htm:http://www.aucanlink.com/123.htm


楼主试过 在服务器 只放一个html页面,只写几个文字,
先看下是否是 服务器响应慢
--------------------编程问答--------------------
引用 21 楼 u011096386 的回复:
Quote: 引用 20 楼 Minigore 的回复:

Quote: 引用 19 楼 u011096386 的回复:

中间部分全部是 动态从数据库获取的?
中间部分那么多标签栏目,不知是一次数据全取出还是每一个栏目取一次
建议用ajax,或者cache 来访问

中间每个国家就两个栏目是动态的,每一个各取一次,关键是我导成htm浏览也是这个速度
导成htm:http://www.aucanlink.com/123.htm


楼主试过 在服务器 只放一个html页面,只写几个文字,
先看下是否是 服务器响应慢

试过,那样挺快的  只有文字:http://www.aucanlink.com/0.htm
然后把首页输出的html,删除所有图片,只剩下文字,速度就快了,之前有图文的时候也用工具看过,
刚加载出现空白时图片、CSS、JS也有通信(如图),4-5秒之后就出现页面了,能不能改成刚输入网址,先出现个导航栏,不出现空白等待页面;
图是加载出现空白时加载的文件: --------------------编程问答-------------------- 我这边火狐第一次就是秒开,不过IE9下面JS有一部分识别不了。(function($, window, document, undefined) 不知道是不是这段有问题。JS有问题的话谷歌浏览器会变慢倒是。 --------------------编程问答--------------------
引用 23 楼 zay03008213 的回复:
我这边火狐第一次就是秒开,不过IE9下面JS有一部分识别不了。(function($, window, document, undefined) 不知道是不是这段有问题。JS有问题的话谷歌浏览器会变慢倒是。

我这火狐也是等4秒,您那是什么线路?难道是线路问题?我是电信的 --------------------编程问答-------------------- <script src="/js/jquery.min.js" type="text/javascript"></script>
应在
 <script src="/js/jquery.lazyload.js" type="text/javascript"></script>
上啊。 --------------------编程问答-------------------- 我這速度還比較快啊。 --------------------编程问答--------------------
引用 26 楼 sunylf 的回复:
我這速度還比較快啊。

你的宽带是什么线路?电信?联通? 打开网站,没有4秒的空白等待页面? --------------------编程问答-------------------- 聯通8M帶寬,一開就能出來,不過圖片出來的有點慢。 --------------------编程问答-------------------- 下面的链接无法打开,请及时修正或删除
http://ww2.sinaimg.cn/thumbnail/5f6eb063jw1e6kw5dld2cj20c80fgtbn.jpg (状态码:503)  --------------------编程问答-------------------- 这个js  ScrollPic.js  200 1.9 KB   2572ms   --------------------编程问答-------------------- 楼上的几位恢复的很好啊!
大致思路是这样的:
1)根据页面执行的顺序页面的JS 一定要放在最后执行,因为有些JS加载时花很多时间;
2)分布式的延迟加载 先加载页面的的前面部分 其它的延迟加载;
--------------------编程问答--------------------
引用 28 楼 sunylf 的回复:
聯通8M帶寬,一開就能出來,不過圖片出來的有點慢。

难道 就是 线路问题了?我这是电信的 ,服务器是联通的
代码 还有优化的空间吗 ? --------------------编程问答--------------------
引用 31 楼 luodayoudianzi 的回复:
楼上的几位恢复的很好啊!
大致思路是这样的:
1)根据页面执行的顺序页面的JS 一定要放在最后执行,因为有些JS加载时花很多时间;
2)分布式的延迟加载 先加载页面的的前面部分 其它的延迟加载;

请问 分布式的延迟加载 先加载页面的的前面部分 其它的延迟加载; 这个怎么解决,不大明白呢?技术不到家啊,能详细说一下吗 --------------------编程问答-------------------- chrome 速度还可以 --------------------编程问答-------------------- http://www.cnblogs.com/fishtreeyu/archive/2011/03/12/1982067.html
延迟加载的一个例子。把一些图片什么的大的资源后加载 页面的样式提前加载 --------------------编程问答--------------------
引用 35 楼 luodayoudianzi 的回复:
http://www.cnblogs.com/fishtreeyu/archive/2011/03/12/1982067.html
延迟加载的一个例子。把一些图片什么的大的资源后加载 页面的样式提前加载

图片做了延时加载了,效果不明显呢 --------------------编程问答--------------------
引用 34 楼 stubble 的回复:
chrome 速度还可以

没出现 空白等待页面吗?
郁闷 啊, --------------------编程问答--------------------
引用 10 楼 Minigore 的回复:
Quote: 引用 9 楼 u011096386 的回复:

Quote: 引用 楼主 Minigore 的回复:

.NET 网站,启用了 gzip压缩,访问速度慢,输入网址后,会有4-5秒的空白页面,之后才出现网页内容,领导说空白时间太长,速度慢,度娘一个周了,没有实质的效果,请大家帮忙出出主意啊,急求啊!救命啊!


楼主把网址贴上来啊,大家好能针对性看看
 
网址:http://www.aucanlink.com/大家看看把,JS能放到后面的都放了,实在没法了现在

很快就出来了啊。是不是你的机器有问题? --------------------编程问答-------------------- 可以参考下jdon这个网站的架构 --------------------编程问答--------------------
引用 38 楼 linrachel 的回复:
很快就出来了啊。是不是你的机器有问题?

你的电脑是不是联通的线路啊  
--------------------编程问答-------------------- 其实我看了下你的网站 3-5秒之内加载完毕是可以的 。8秒时有点慢 10秒以上是不能接受的。所以你的网站基本上没啥大的问题 你们领导太挑剔了啥都不懂又装高深哈!如果说超过8秒的话必须得解决了! --------------------编程问答--------------------
引用 40 楼 Minigore 的回复:
Quote: 引用 38 楼 linrachel 的回复:


很快就出来了啊。是不是你的机器有问题?

你的电脑是不是联通的线路啊  

长城宽带。。。10M --------------------编程问答--------------------
引用 41 楼 luodayoudianzi 的回复:
其实我看了下你的网站 3-5秒之内加载完毕是可以的 。8秒时有点慢 10秒以上是不能接受的。所以你的网站基本上没啥大的问题 你们领导太挑剔了啥都不懂又装高深哈!如果说超过8秒的话必须得解决了!

关键领导他看打开之后,出现空白页等待了,就感觉速度慢,给客户造成不好的影响,很头疼啊,现在就想着是输入网址,先展现出点内容,哪怕是视觉上的 也是可以啊,毕竟客户们也会用工具查看你的速度,只是从感官上来的 --------------------编程问答--------------------
引用 43 楼 Minigore 的回复:
Quote: 引用 41 楼 luodayoudianzi 的回复:

其实我看了下你的网站 3-5秒之内加载完毕是可以的 。8秒时有点慢 10秒以上是不能接受的。所以你的网站基本上没啥大的问题 你们领导太挑剔了啥都不懂又装高深哈!如果说超过8秒的话必须得解决了!

关键领导他看打开之后,出现空白页等待了,就感觉速度慢,给客户造成不好的影响,很头疼啊,现在就想着是输入网址,先展现出点内容,哪怕是视觉上的 也是可以啊,毕竟客户们也会用工具查看你的速度,只是从感官上来的

毕竟客户们也不会用工具查看你的速度,只是从感官上来的 --------------------编程问答--------------------
引用 40 楼 Minigore 的回复:
Quote: 引用 38 楼 linrachel 的回复:


很快就出来了啊。是不是你的机器有问题?

你的电脑是不是联通的线路啊  
联通的,第一次很块啊,就是下面的图片需加载几秒 --------------------编程问答-------------------- 看了这个网站,你图片太大了。90K完全可以压缩到十几。 --------------------编程问答--------------------
引用 46 楼 tangjin01 的回复:
看了这个网站,你图片太大了。90K完全可以压缩到十几。

再压就失真了,感觉,有没有不失真的压缩图片的方法?谢谢 --------------------编程问答-------------------- 图片用的是png格式么?

对了,30楼提到了js貌似时间有点儿长?不过你写在最后了应该不是问题、、、还是检查下吧 --------------------编程问答-------------------- 你先看在本地有出现这个问题吗?

--------------------编程问答--------------------
引用 49 楼 aaipan8 的回复:
你先看在本地有出现这个问题吗?

本地浏览,直接秒出啊,刷刷的 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 用chrome 或者ff可以直接查看你网站加载速度时间 ,或者下载插件 ,这种很多 ,看时间在哪个地方是慢的 。然后重点解决最慢的 --------------------编程问答--------------------
引用 52 楼 woaizuguo 的回复:
用chrome 或者ff可以直接查看你网站加载速度时间 ,或者下载插件 ,这种很多 ,看时间在哪个地方是慢的 。然后重点解决最慢的

关键是现在想解决出现空白页是什么情况,不明白这个问题,
什么原因会在、出现这个空白页面的等待时间呢? --------------------编程问答-------------------- 就是用 firebug - 网络-所有  (图中圈出来的地方的时间问题)
  --------------------编程问答-------------------- photoshop 等都可以压缩图片啊,不会失真的。。。。 --------------------编程问答--------------------
引用 55 楼 tangjin01 的回复:
photoshop 等都可以压缩图片啊,不会失真的。。。。

图片都是PS处理过了,再处理就有失真了 --------------------编程问答-------------------- 可能是IIS中程序应用池自动回收的问题,在IIS中找到网站所属的程序应用池,右键-》属性-》设置在下列时间回收工作进程,譬如半夜2:00,然后设置一个任务计划,每天2点的时候浏览一下网站,那么第一个人访问就不会慢了 --------------------编程问答--------------------
引用 57 楼 slyzly 的回复:
可能是IIS中程序应用池自动回收的问题,在IIS中找到网站所属的程序应用池,右键-》属性-》设置在下列时间回收工作进程,譬如半夜2:00,然后设置一个任务计划,每天2点的时候浏览一下网站,那么第一个人访问就不会慢了

能说说任务计划,怎么做吗,小白一个啊我 --------------------编程问答-------------------- IS 有一种机制,默认会在IIS空闲一定时间段后,将应用程序池进行回收,这个时间段在IIS6中默认是20分钟,在IIS7中默认是1740分钟。两个配置都不合理,都会导致当应用程序池被回收后,第一次访问网站的时候速度很慢。如果一直不回收应用程序池,会导致占用内存过大。
我们的希望是每天凌晨进行应用程序池回收,并同时进行第一次访问,这样每天工作时间访问的时候速度都是很快的。
具体做法是:
1. 在IIS中配置,应用程序池的回收时间,固定为每天都0:00:00进行;
2. 在Windows中制作一个计划任务,执行一个“activateWebSite.bat”批处理命令,固定为每天的0:10:00进行;

“activateWebSite.bat”批处理命令的内容如下:

@echo off
taskkill /im iexplore.exe /f /t
start  http://www.baidu.com?1=1
ping 127.0.0.1 -n 5
taskkill /im iexplore.exe /f /t
start  http://www.google.com.hk
ping 127.0.0.1 -n 5
taskkill /im iexplore.exe /f /t


命令含义是:
先关掉所有的IE进程(需要设置默认浏览器是IE)
然后通过浏览器访问指定网站网址,一般为本服务器上配的网站地址;
然后通过ping来延迟5秒钟,以方便IE打开页面,当然延迟多少秒可以自己设定;
如果有多个网站,则可以挨个访问;
最后在关闭掉所有的IE进程。 --------------------编程问答--------------------
引用 楼主 Minigore 的回复:
.NET 网站,启用了 gzip压缩,访问速度慢,输入网址后,会有4-5秒的空白页面,之后才出现网页内容,领导说空白时间太长,速度慢,度娘一个周了,没有实质的效果,请大家帮忙出出主意啊,急求啊!救命啊!


那就把相应mime类型相关的gzip去掉呗。你难道没有想到?反正我是信了。 --------------------编程问答--------------------
引用 17 楼 Minigore 的回复:
服务器联通5M专线呢,我电信客户端打开,第一次4-5秒等待,第二次,秒开了就,这个第一次不好办啊


要是你的网站平均20秒钟才有一个访问请求,那么你趁早不要使用asp.net了。如果有多一点人再访问,你还硬说什么“第一次”吗? --------------------编程问答--------------------
引用 59 楼 slyzly 的回复:
IS 有一种机制,默认会在IIS空闲一定时间段后,将应用程序池进行回收,这个时间段在IIS6中默认是20分钟,在IIS7中默认是1740分钟。两个配置都不合理,都会导致当应用程序池被回收后,第一次访问网站的时候速度很慢。如果一直不回收应用程序池,会导致占用内存过大。
我们的希望是每天凌晨进行应用程序池回收,并同时进行第一次访问,这样每天工作时间访问的时候速度都是很快的。
具体做法是:
1. 在IIS中配置,应用程序池的回收时间,固定为每天都0:00:00进行;
2. 在Windows中制作一个计划任务,执行一个“activateWebSite.bat”批处理命令,固定为每天的0:10:00进行;

“activateWebSite.bat”批处理命令的内容如下:

@echo off
taskkill /im iexplore.exe /f /t
start  http://www.baidu.com?1=1
ping 127.0.0.1 -n 5
taskkill /im iexplore.exe /f /t
start  http://www.google.com.hk
ping 127.0.0.1 -n 5
taskkill /im iexplore.exe /f /t


命令含义是:
先关掉所有的IE进程(需要设置默认浏览器是IE)
然后通过浏览器访问指定网站网址,一般为本服务器上配的网站地址;
然后通过ping来延迟5秒钟,以方便IE打开页面,当然延迟多少秒可以自己设定;
如果有多个网站,则可以挨个访问;
最后在关闭掉所有的IE进程。


话说,服务器不能访问外网网页,这个方法岂不没法实现了 --------------------编程问答--------------------
引用 60 楼 sp1234 的回复:
Quote: 引用 楼主 Minigore 的回复:

.NET 网站,启用了 gzip压缩,访问速度慢,输入网址后,会有4-5秒的空白页面,之后才出现网页内容,领导说空白时间太长,速度慢,度娘一个周了,没有实质的效果,请大家帮忙出出主意啊,急求啊!救命啊!


那就把相应mime类型相关的gzip去掉呗。你难道没有想到?反正我是信了。

不是因为启用 gzip网站才出现慢的,我的意思是已经启用了gzip,速度有所改善,可总体来说访问还是慢,有没有别的方法加速 --------------------编程问答-------------------- 哥哥,你网站上的图片也太大了吧.... --------------------编程问答-------------------- 首页有几兆大小了吧,慢点正常
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,