日期:2014-05-17  浏览次数:20487 次

关于页面打开速度问题
我在设计页面时,频繁使用服务器控件,在代码中经常调用数据库,还多次使用for,foreach循环,和if判断

我想请教一下,这些会影响页面浏览速度吗?还有在实现功能时应避开什么吗??

麻烦老鸟们指导指导???
服务器 数据库 控件 优化

------解决方案--------------------
你还停留在控件的层面是,我并不是说html里面的那些就不是控件了。只是.net自身的服务器控件或者第三方控件或者自定义控件,这些在经过服务器解析之后返回的都是html代码,尽量避免使用。能替代的就替代,或者动态构建纯html代码。
对于循环什么的建议划分好业务,然后着手,可以分部读取,也可以并行读取。这得看你业务层面还有数据库表设计的粒度。
不变或者时效性不高的数据完全可以缓存起来的,页级缓存也打开
------解决方案--------------------
引用:
用静态页面,我怎么随时跟新页面,及向数据库添加数据。要求设计的网站就是用aspx做的,就是想问一下,在页面中“繁使用服务器控件,在代码中经常调用数据库,还多次使用for,foreach循环,和if判断”,会不会影响效率,因为我担心做出来的发布时浏览页面慢,而且会给服务器造成很大负担。


在数据库数据少的时候 ,如果逻辑判断不是很多,不会特别明显,
但数据多 再加上 多次数据库调用及 复杂逻辑 肯定是会慢的
合理利用 ajax 、页级缓存 及 片段缓存 一般的网站是没问题的

加了runat=“server”的是服务器控件,在页面被访问时 .net会将其生成纯html输出
但是会附加 viewstate 
viewstate 内容量过大 也是 会影响加载速度的


------解决方案--------------------
引用:
你还停留在控件的层面是,我并不是说html里面的那些就不是控件了。只是.net自身的服务器控件或者第三方控件或者自定义控件,这些在经过服务器解析之后返回的都是html代码,尽量避免使用。能替代的就替代,或者动态构建纯html代码。
对于循环什么的建议划分好业务,然后着手,可以分部读取,也可以并行读取。这得看你业务层面还有数据库表设计的粒度。
不变或者时效性不高的数据完全可以缓存起来的,页级缓存也打开

楼上回答的太专业了