ASPX页面打开速度慢,HTML页面却很快

时间:2021-03-27 08:55:12
我在服务器上挂了2个页面,一个是ASPX页面,一个是html页面
两个页面的内容是一模一样的,ASPX页面没有任何的操作
打开html页面基本不需要时间,立即呈现结果
但打开ASPX页面却需要1秒左右,有时还长达5~6秒,经常浏览器显示“正在打开网页”
查看服务器,CPU和网速都很正常

有什么办法可以提高ASPX页面的打开速度
各位大虾轻多多帮忙,感激不尽

36 个解决方案

#1


如果页面经常用的话,建议使用缓存

#2


aspx在第一次打开是比较慢的,JSP感觉更明显.

#3


你这个没办法,ASPX有个解析的过程。
缓存

#4


ASPX页面是需要编译的。

#5


那你们一般打开相差多久?

#6


第一次打开总是会很慢的,如果使用了页面缓存 在第二次及以后访问会快一些。

#7


kankan

#8


引用 2 楼 zhao_yong 的回复:
aspx在第一次打开是比较慢的,JSP感觉更明显.


因为aspx页面要有后台生产html代码,然后解析

这样就需要一定的时间,不过你说5-6秒,太夸张了吧

#9


不管是aspx,asp,jsp,php等等页面最终还是要转换为HTML代码再打开!和纯html页面相比在执行效率上肯定会低,这也是我们在开发的时候能不用服务器控件的话就尽量少用的原因!

#10


引用 6 楼 cooolchen 的回复:
第一次打开总是会很慢的,如果使用了页面缓存 在第二次及以后访问会快一些。


有没有改进的办法?
但打开速度真的太慢了,是不是设置有问题?

#11


你这个没办法,ASPX有个解析的过程。 
缓存
可以禁用缓存如果页面不回发

#12


第一次慢点.以后就快了.

可以使用页面缓存
<%@ OutputCache Duration="100" VaryByParam="none" %>

把这行放到你的aspx页的最上边.

#13


aspx页面是要进行解析的,要不这么说静态页面速度快。

#14


初次加载的时候会慢一些

ASPX解析到HTML 需要过程

肯定没有你直接打开HTML 要快

不过你可以用缓存来解决

第一次打开的时候会加载到缓存里 以后打开会快很多

如果经常更新的数据,你可以使用控件缓存


要么你就在后台直接生成静态页面

也是一种方面

#15


1s也算慢.....?

#16


引用 12 楼 lovehongyun 的回复:
第一次慢点.以后就快了. 

可以使用页面缓存 

HTML code<%@ OutputCache Duration="100" VaryByParam="none" %>


把这行放到你的aspx页的最上边.


使用VS自带的缓存,那个缓存时间是怎么理解的?
是把数据保存到内存100秒,假如100秒后,数据就重新生成?
假如在100秒内也有同样的请求,那数据是否还是在原来那100秒后重新生成,还是说根据最后一次请求的时间再过100秒才重新生成?

#17


aspx页面因为要在后台进行解析,第一次当然慢
而HTML页面就直接是个表格或DIV做出来的页面,它又不需要什么解析,

#18


某页或用户控件的可缓存性指某页能否在其响应生命周期内缓存到某个设备上。 这些设备包括发出请求的客户端(浏览器),响应请求的 Web 服务器,以及请求或响应流中任何具有缓存功能的设备(例如代理服务器)

那个时间过了缓存就会过期,缓存过期了就还会去请求你的server.
如果缓存没有过期.就会直接访问缓存后的页面,这样就跟静态的html页几乎没什么区别.



#19


页输出缓存在内存中存储处理后的 ASP.NET 页的内容。这一机制允许 ASP.NET 向客户端发送页响应,而不必再次经过页处理生命周期。页输出缓存对于那些不经常更改,但需要大量处理才能创建的页特别有用。例如,如果创建大通信量的网页来显示不需要频繁更新的数据,页输出缓存则可以极大地提高该页的性能。

#20


第一次打开总是会很慢的,生成,编译,转译.
可以用页面缓存 。

#22


其实在我们第一次打开asp.net网页的时候,相应的网页会被编译成dll文件,然后JIT来运行这个dll文件。一旦这个文件再次发生变化,下次第一个请求这个网页时又会被编译成dll文件。并且为了防止文件名重名,生成的dll文件采用了随机命名。
这也就是asp.net网页不同于asp或者php的地方:asp.net页面在第一次请求的时候会被编译成dll文件,由JIT编译执行,因而aspx页面第一次被打开的时候比较慢,而以后执行的时候就会比较快,因为以后执行的时候除非修改了代码否则就没有必要重新生.dll文件了;而asp和php网页每次运行的时候都会被解释执行,因而asp.net网站的运行速度要快。

摘自 Asp.net夜话之一:asp.net介绍

#23


引用 22 楼 zhoufoxcn 的回复:
其实在我们第一次打开asp.net网页的时候,相应的网页会被编译成dll文件,然后JIT来运行这个dll文件。一旦这个文件再次发生变化,下次第一个请求这个网页时又会被编译成dll文件。并且为了防止文件名重名,生成的dll文件采用了随机命名。 
这也就是asp.net网页不同于asp或者php的地方:asp.net页面在第一次请求的时候会被编译成dll文件,由JIT编译执行,因而aspx页面第一次被打开的时候比较慢,而以后执行的时候就会比较快,因为以…


如果这样说的话,那怎么打开一个ASPX页面还要那么长的时间呢?
除了缓存,还有没有其他方法可以解决这个问题?

#24


你这个没办法,ASPX有个解析的过程。 
缓存

#25


顶!
静态页面不经过编译解析,肯定要比*.aspx、*.jsp要快的了

#26


因为使用输出缓存,会把数据存储到内存上,如果存储时间很长并且页面很多的话,会导致内存不足
或者有没有办法把缓存的内容存储到磁盘上?

#27


引用 26 楼 j_seaman 的回复:
因为使用输出缓存,会把数据存储到内存上,如果存储时间很长并且页面很多的话,会导致内存不足 
或者有没有办法把缓存的内容存储到磁盘上?


你如果想了解缓存.那就先查些资料把缓存的分类,内容等弄明白.
然后你会明白的更多

看看这个吧.
http://topic.csdn.net/u/20081030/17/193a101e-8e71-4c23-b24d-3068e3a6cbda.html

#28


IIS什么情况下会重启回收内存?

#29


来学习,UP一下

#30


ASPX有个解析的过程,所以慢一点是正常的啊

#31


up

#32


优化一下,是用的Release版本 发布的吗?不要用debug版本发布好些。

#33


当我打开部署到生产服务器的aspx文件,全都是只有一行文字:
这是预编译工具生成的标记文件,不应被删除!

这才是正常的aspx文件。

因为网站最终发布时就可以取消“允许修改此预编译站点”选项了。只有测试用的网站才会部署aspx代码上去。

#34


都高手
我闪

#35


引用 33 楼 sp1234 的回复:
当我打开部署到生产服务器的aspx文件,全都是只有一行文字: 

HTML code这是预编译工具生成的标记文件,不应被删除!


这才是正常的aspx文件。 

因为网站最终发布时就可以取消“允许修改此预编译站点”选项了。只有测试用的网站才会部署aspx代码上去。


不是很明白,可以说详细点吗?

#36


aspx页面需要解析成html 

#1


如果页面经常用的话,建议使用缓存

#2


aspx在第一次打开是比较慢的,JSP感觉更明显.

#3


你这个没办法,ASPX有个解析的过程。
缓存

#4


ASPX页面是需要编译的。

#5


那你们一般打开相差多久?

#6


第一次打开总是会很慢的,如果使用了页面缓存 在第二次及以后访问会快一些。

#7


kankan

#8


引用 2 楼 zhao_yong 的回复:
aspx在第一次打开是比较慢的,JSP感觉更明显.


因为aspx页面要有后台生产html代码,然后解析

这样就需要一定的时间,不过你说5-6秒,太夸张了吧

#9


不管是aspx,asp,jsp,php等等页面最终还是要转换为HTML代码再打开!和纯html页面相比在执行效率上肯定会低,这也是我们在开发的时候能不用服务器控件的话就尽量少用的原因!

#10


引用 6 楼 cooolchen 的回复:
第一次打开总是会很慢的,如果使用了页面缓存 在第二次及以后访问会快一些。


有没有改进的办法?
但打开速度真的太慢了,是不是设置有问题?

#11


你这个没办法,ASPX有个解析的过程。 
缓存
可以禁用缓存如果页面不回发

#12


第一次慢点.以后就快了.

可以使用页面缓存
<%@ OutputCache Duration="100" VaryByParam="none" %>

把这行放到你的aspx页的最上边.

#13


aspx页面是要进行解析的,要不这么说静态页面速度快。

#14


初次加载的时候会慢一些

ASPX解析到HTML 需要过程

肯定没有你直接打开HTML 要快

不过你可以用缓存来解决

第一次打开的时候会加载到缓存里 以后打开会快很多

如果经常更新的数据,你可以使用控件缓存


要么你就在后台直接生成静态页面

也是一种方面

#15


1s也算慢.....?

#16


引用 12 楼 lovehongyun 的回复:
第一次慢点.以后就快了. 

可以使用页面缓存 

HTML code<%@ OutputCache Duration="100" VaryByParam="none" %>


把这行放到你的aspx页的最上边.


使用VS自带的缓存,那个缓存时间是怎么理解的?
是把数据保存到内存100秒,假如100秒后,数据就重新生成?
假如在100秒内也有同样的请求,那数据是否还是在原来那100秒后重新生成,还是说根据最后一次请求的时间再过100秒才重新生成?

#17


aspx页面因为要在后台进行解析,第一次当然慢
而HTML页面就直接是个表格或DIV做出来的页面,它又不需要什么解析,

#18


某页或用户控件的可缓存性指某页能否在其响应生命周期内缓存到某个设备上。 这些设备包括发出请求的客户端(浏览器),响应请求的 Web 服务器,以及请求或响应流中任何具有缓存功能的设备(例如代理服务器)

那个时间过了缓存就会过期,缓存过期了就还会去请求你的server.
如果缓存没有过期.就会直接访问缓存后的页面,这样就跟静态的html页几乎没什么区别.



#19


页输出缓存在内存中存储处理后的 ASP.NET 页的内容。这一机制允许 ASP.NET 向客户端发送页响应,而不必再次经过页处理生命周期。页输出缓存对于那些不经常更改,但需要大量处理才能创建的页特别有用。例如,如果创建大通信量的网页来显示不需要频繁更新的数据,页输出缓存则可以极大地提高该页的性能。

#20


第一次打开总是会很慢的,生成,编译,转译.
可以用页面缓存 。

#21


#22


其实在我们第一次打开asp.net网页的时候,相应的网页会被编译成dll文件,然后JIT来运行这个dll文件。一旦这个文件再次发生变化,下次第一个请求这个网页时又会被编译成dll文件。并且为了防止文件名重名,生成的dll文件采用了随机命名。
这也就是asp.net网页不同于asp或者php的地方:asp.net页面在第一次请求的时候会被编译成dll文件,由JIT编译执行,因而aspx页面第一次被打开的时候比较慢,而以后执行的时候就会比较快,因为以后执行的时候除非修改了代码否则就没有必要重新生.dll文件了;而asp和php网页每次运行的时候都会被解释执行,因而asp.net网站的运行速度要快。

摘自 Asp.net夜话之一:asp.net介绍

#23


引用 22 楼 zhoufoxcn 的回复:
其实在我们第一次打开asp.net网页的时候,相应的网页会被编译成dll文件,然后JIT来运行这个dll文件。一旦这个文件再次发生变化,下次第一个请求这个网页时又会被编译成dll文件。并且为了防止文件名重名,生成的dll文件采用了随机命名。 
这也就是asp.net网页不同于asp或者php的地方:asp.net页面在第一次请求的时候会被编译成dll文件,由JIT编译执行,因而aspx页面第一次被打开的时候比较慢,而以后执行的时候就会比较快,因为以…


如果这样说的话,那怎么打开一个ASPX页面还要那么长的时间呢?
除了缓存,还有没有其他方法可以解决这个问题?

#24


你这个没办法,ASPX有个解析的过程。 
缓存

#25


顶!
静态页面不经过编译解析,肯定要比*.aspx、*.jsp要快的了

#26


因为使用输出缓存,会把数据存储到内存上,如果存储时间很长并且页面很多的话,会导致内存不足
或者有没有办法把缓存的内容存储到磁盘上?

#27


引用 26 楼 j_seaman 的回复:
因为使用输出缓存,会把数据存储到内存上,如果存储时间很长并且页面很多的话,会导致内存不足 
或者有没有办法把缓存的内容存储到磁盘上?


你如果想了解缓存.那就先查些资料把缓存的分类,内容等弄明白.
然后你会明白的更多

看看这个吧.
http://topic.csdn.net/u/20081030/17/193a101e-8e71-4c23-b24d-3068e3a6cbda.html

#28


IIS什么情况下会重启回收内存?

#29


来学习,UP一下

#30


ASPX有个解析的过程,所以慢一点是正常的啊

#31


up

#32


优化一下,是用的Release版本 发布的吗?不要用debug版本发布好些。

#33


当我打开部署到生产服务器的aspx文件,全都是只有一行文字:
这是预编译工具生成的标记文件,不应被删除!

这才是正常的aspx文件。

因为网站最终发布时就可以取消“允许修改此预编译站点”选项了。只有测试用的网站才会部署aspx代码上去。

#34


都高手
我闪

#35


引用 33 楼 sp1234 的回复:
当我打开部署到生产服务器的aspx文件,全都是只有一行文字: 

HTML code这是预编译工具生成的标记文件,不应被删除!


这才是正常的aspx文件。 

因为网站最终发布时就可以取消“允许修改此预编译站点”选项了。只有测试用的网站才会部署aspx代码上去。


不是很明白,可以说详细点吗?

#36


aspx页面需要解析成html