日期:2014-05-20  浏览次数:20416 次

一个小发现,ASP.NET 为什么慢.
一个很简单的登录页面,发现在访问时等待时间有点长(1-2秒的感觉).而页面运行时间只有几十毫秒.

我发现ASP.NET的WEB   FORM   纯属多余.加了runat= "server "的控件可以在服务器端访问值,但是如果不加runat呢,还是一样可以访问,也就是方法稍有不同而已.

我现在把原来的 <form   id= "form1 "   runat= "server "> ... </form>
改成
<%   = " <form   method=\ "post\ "   onsubmit=\ "return   checkForm1(this);\ "   action=\ "login.aspx\ "   name=\ "form1\ "> "   %>
....
<%= " </form> "   %>

马上速度象静态页面一样快,也一样可以实现提交登录.

不知道各位碰到过这种问题没.这是不是MS为了让ASP.NET显得方便而造出来的废物?


------解决方案--------------------
觉得慢是你第一次访问页面编译。或者你的配置杂,要么就是你代码有问题。

编译过的页面和静态页面速度你是无法感觉出来的。
------解决方案--------------------
asp.net要把程序调入服务器内存,第一次运行就很慢,但如果打开一页不要关,然后在另一台机器上打同一页就非常快了.
加runat= "Server "就代表那是服务器控件,就可以使用.net的事件,没有runat就是HTML控件,可以不经过IIS也能同事运行.
------解决方案--------------------
第一次要编译而已
------解决方案--------------------
有很多人都是用VS这类的工具拖拖控件就完事的那种系统,生成一大堆的冗余代码。
夸张的一个页面几十个服务器控件,你看看是不是那会事?
并不是什么时候都要用到服务器控件的。
------解决方案--------------------
第一次要编译而已
------解决方案--------------------
收藏
------解决方案--------------------
第一次运行是慢,希望以后版本解决这个问题
------解决方案--------------------
·woanon(嗳老虎游)

你发布就不会慢,这个仅限于调试,你发布编译好的版本。

不是解决不解决的问题。
------解决方案--------------------
楼上是对的,调试时期每一次运行几乎都要重新在运行时再编译aspx中的代码(不是指后台代码,那个是运行前编译的。但是运行之后asp.net会再编译aspx)。
------解决方案--------------------
如果你不使用服务器控件,最好不要使用asp.net,应该使用asp或者jsp。你此时实际上不需要在回发或者回调中处理控件状态,不要使用asp.net这种过于动态的系统。
------解决方案--------------------
给各位师兄拜年了!
------解决方案--------------------
不用服务器控件就不能使用asp.net了吗?

不需要回发的页面,直接显示数据不可以吗?

为什么那么极端呢?

------解决方案--------------------
哈哈,过年了。。。
和气。。。
------解决方案--------------------
首先说一句,ASP.NET并不慢。 费大工夫来使编译时间减少一些,在这里个人认为没有意义,反正发布以后区别非常小了,楼主这种做法是以开发效率换编译效率,不觉得有很大意义,如果页面复杂,不一定就更有效。

我们说效率,自然是算最终用户的使用体验,楼主也说了是大约几十毫秒.那还有什么必要在这里再花力气呢?把力气花其他地方不是更好么? 调试的时候慢一点,也是多花了一点开发时间而已,你去把控件自己这样换了,难道不也是花费了开发时间么?何况你这么做还丢失了服务器控件的状态等特性。

如果所有控件都希望自己写html来Render,这样的效率提高只是丢失更重要的东西换来的,如sp1234所说的,那还不如“不要用ASP.NET”,不是“不能用”是“不如不用”。