大型门户网站,如何提升其速度。有经验的兄弟讲讲。分享下你的经验。 单从页面程序上讲,服务器性能,带宽足够。有经验的兄弟讲讲。分享下你的经验。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 性能提高的技巧1.避免不必要的执行操作 Page_Load 和 IsPostBack void Page_Load(Object sender, EventArgs e) { // ...set up a connection and command here... if (!Page.IsPostBack) { String query = "select * from Authors where FirstName like '%JUSTIN%'"; myCommand.Fill(ds, "Authors"); myDataGrid.DataBind(); } } void Button_Click(Object sender, EventArgs e) { String query = "select * from Authors where FirstName like '%BRAD%'"; myCommand.Fill(ds, "Authors"); myDataGrid.DataBind(); }关闭不必要的Session状态<%@ Page EnableSessionState="false" %>注意使用Server Control不必要时可以不使用Server Control不必要时可以关闭ViewState<asp:datagrid EnableViewState="false“ runat="server"/> <%@ Page EnableViewState="false" %>不要用Exception控制程序流程try { result = 100 / num;} catch (Exception e) { result = 0; } if (num != 0) result = 100 / num; else result = 0; 禁用VB和JScript动态数据类型<%@ Page Language="VB" Strict="true" %>使用存储过程数据访问只读数据访问不要使用DataSet使用SqlDataReader代替DataSetSqlDataReader是read-only, forward-only关闭ASP.NET的Debug模式使用ASP.NET Output Cache缓冲数据页面缓冲<%@OutputCache%>DurationVaryByParam片断缓冲VaryByControl数据缓冲过期依赖条件Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));Cache.Insert("MyData", Source, null, DateTime.Now.AddHours(1), TimeSpan.Zero);Cache.Insert("MyData", Source, null, DateTime.MaxValue, TimeSpan.FromMinutes(20));存储过程,那就不用说了 页面最好静态的全局缓存要做好 别太多的包含文件能用JS实现的效果都用JS实现能在客户端实现的就用分页使用好的存储过程,其他的也尽量使用存储过程少用些耗费资源的控件,减少回发记得销毁数据库连接不要把所有内容都放在大表格中 而是尽量以横向分段,一段为一个表格其他细节就自己把握了 补充两点:少用web控件最小限度的使用datagrid控件 能用html的就不要用aspx了能用javascript就不要用cs了datagrid能不用就不用session、viewstate、Server Control能不用就关存储过程、缓存会用就用,不会就学 只读数据使用datareader,很多的数据库操作使用存储过程,使用<%@outputcache Duration=60 VaryByParam="*"%>进行缓存关闭debug模式正确使用索引if (!Page.IsPostBack)进行绑定不需要回传的代码图片不要太精确主页数据查询比较多但更新不常用的可以使用aspx动态生成html页面 控件不需要经常编程的 比如输入控件等都使用HTML控件开通镜像服务 lulei(特呆) 說得不錯 同志们,我再补充两句少用dataset,可以改为datareader使用cache少用session可以考虑cookie代替 大型门户网站asp.net实现的注意事项:1. 不要用服务器端控件2. 全面禁用asp.net的一些页面级新特性3. web.config里的debug要为false,并且dll文件编译是要生成为release版本的4. 尽量不要用dataset。除非用到嵌套循环5. 运行在win2003企业版上。6. 用sqlclient或oracleclient访问数据库这些是asp.net开发大型网站必须要重视的几点,其它一些就是静态页面啊和硬件上的一些问题,这些跟其它大型网站诸如此类 cache 要慎要,因为巨大的访问量会过多的消耗内量,适得其反! 终极解决方案:不要APS、ASP.NET、PHP、JSP等技术。全部使用HTML,杜绝JavaScript脚本,避免图片、FLASH、音频等。回答完毕 不错,受益匪浅补充几点,1、转向用Server.Transfer,不用Response.Direct2、ADO对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放ADO对象3、数据集采用要多少给多少,杜绝不分字段不分页 程序上的优化上面说了很多了.页面上执行顺序问题也很重要.另外html尽量遵守w3c规范. 不错,尽量生成shtml等静态页,其它一些提高性能的小技巧,大家都说的差不多了,其实象用as代替is这样语言界别的提高性能的技巧,其实对整体性能影响不会是很大的,用好缓存,经过很久计算的数据一定要缓存起来,还有就是使用一些客户端技术来减轻服务器压力。 大型门户网站,除了软件上性能的提升,更重要的还应该使用.net的分布式的部署策略,集群技术等 可以参考微软的例子Duwamish和petshop的部署方法 1. 不要用服务器端控件2. 全面禁用asp.net的一些页面级新特性3. web.config里的debug要为false,并且dll文件编译是要生成为release版本的4. 尽量不要用dataset。除非用到嵌套循环这么多的东西不用啊,干脆还是用asp。 to gchlihong() : 如果你认为这么多东西不用就还不如asp的话那就大错特错了。  尽量用button,少用下拉框 页面数量尽量少 尽量考虑逻辑上的当前信息 大家的一致意见是:啥都不用!那我们还要asp。net干哈? 咱也来补充一下吧:少用select * form table这样的语句 是呀,干脆还是用asp好了不要用服务器端控件??太绝对了吧。不用DataGrid倒是应该的,Repeater倒是挺好用的,建议多多使用。DataSet也是很好的东东嘛。比如首页往往要从好多个表里取记录,而每一个表里只取几条记录,那么访问一次数据库,把需要的记录都取出来放在DataSet里面不是挺好的吗?节省了访问次数,缩短了open的时间,只是多占用了一点点内存。ViewState一般都是可以禁用的,可以减少网页的体积。分页的时候,第一页直接用 select top 20 ... 的方式。因为第一页的访问率绝对是很高的,这样可以节省很多的内存。 一个 大的 网站是不可能全部东西都生成是静态的 但是 能生成静态页面的 就生成 静态页面能不用服务器控件的 也不要用能用js完成的东西不要写后台代码还有就是 数据库SQL 的代码优化服务器均衡 等等 尽量的不要使用try语句关闭 调试模式数据访问不要烂用DataSet 能用DataReader的地方尽量用DataReader关闭不必要的ViewState能用Cookies的不要用SessionSQL使用存储过成 我自己在补充下:不要将整个页面内容塞到一个Table中 说一下为什么不可以用datagrid呢如果不用还要自己去写代码一行一行地显示。菜鸟飞过...................嘎嘎 动态treeview添加子节点连接问题 asp.net 各位高手帮忙查下错~~~ 在线等:问一个gridview的问题 做网站时用asp.net应用程序时没有时钟控件 关于MultiPage的动态绑定的问题 在线等一个问题---错误提示:"指定的路径不可用,IIS可能并未运行或者是路径已经重定向到另外的计算机... ..." 问个字符串的问题 微软大哥,帮帮忙! 下面的问题如何处理 关于写论坛的问题!! Asp.net 中OWC.spreadsheet ( 如果此题有解, 我将再 + 200分) 另外,顶者有分
1.避免不必要的执行操作
Page_Load 和 IsPostBack
void Page_Load(Object sender, EventArgs e) {
// ...set up a connection and command here...
if (!Page.IsPostBack) {
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
} void Button_Click(Object sender, EventArgs e) {
String query = "select * from Authors where FirstName like '%BRAD%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}关闭不必要的Session状态
<%@ Page EnableSessionState="false" %>
注意使用Server Control
不必要时可以不使用Server Control
不必要时可以关闭ViewState
<asp:datagrid EnableViewState="false“ runat="server"/>
<%@ Page EnableViewState="false" %>不要用Exception控制程序流程
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
if (num != 0)
result = 100 / num;
else
result = 0; 禁用VB和JScript动态数据类型
<%@ Page Language="VB" Strict="true" %>
使用存储过程数据访问
只读数据访问不要使用DataSet
使用SqlDataReader代替DataSet
SqlDataReader是read-only, forward-only
关闭ASP.NET的Debug模式
使用ASP.NET Output Cache缓冲数据
页面缓冲
<%@OutputCache%>
Duration
VaryByParam
片断缓冲
VaryByControl数据缓冲
过期依赖条件Cache.Insert("MyData", Source, new CacheDependency(Server.MapPath("authors.xml")));Cache.Insert("MyData", Source, null,
DateTime.Now.AddHours(1), TimeSpan.Zero);Cache.Insert("MyData", Source, null, DateTime.MaxValue,
TimeSpan.FromMinutes(20));
存储过程,那就不用说了
全局缓存要做好
别太多的包含文件
能用JS实现的效果都用JS实现
能在客户端实现的就用分页使用好的存储过程,其他的也尽量使用存储过程
少用些耗费资源的控件,减少回发
记得销毁数据库连接不要把所有内容都放在大表格中 而是尽量以横向分段,一段为一个表格其他细节就自己把握了
能用javascript就不要用cs了
datagrid能不用就不用
session、viewstate、Server Control能不用就关
存储过程、缓存会用就用,不会就学
使用<%@outputcache Duration=60 VaryByParam="*"%>进行缓存
关闭debug模式
正确使用索引
if (!Page.IsPostBack)进行绑定不需要回传的代码
图片不要太精确
主页数据查询比较多但更新不常用的可以使用aspx动态生成html页面
控件不需要经常编程的 比如输入控件等都使用HTML控件
开通镜像服务
少用dataset,可以改为datareader
使用cache
少用session可以考虑cookie代替
2. 全面禁用asp.net的一些页面级新特性
3. web.config里的debug要为false,并且dll文件编译是要生成为release版本的
4. 尽量不要用dataset。除非用到嵌套循环
5. 运行在win2003企业版上。
6. 用sqlclient或oracleclient访问数据库
这些是asp.net开发大型网站必须要重视的几点,其它一些就是静态页面啊和硬件上的一些问题,这些跟其它大型网站诸如此类
不要APS、ASP.NET、PHP、JSP等技术。
全部使用HTML,杜绝JavaScript脚本,避免图片、FLASH、音频等。
回答完毕
补充几点,
1、转向用Server.Transfer,不用Response.Direct
2、ADO对象在一次使用过程中不要重复打开创建,尽量使用一个Connection、一个Command、一个DataReader,并且记得不再调用数据库数据时马上关闭、释放ADO对象
3、数据集采用要多少给多少,杜绝不分字段不分页
页面上执行顺序问题也很重要.另外html尽量遵守w3c规范.
2. 全面禁用asp.net的一些页面级新特性
3. web.config里的debug要为false,并且dll文件编译是要生成为release版本的
4. 尽量不要用dataset。除非用到嵌套循环这么多的东西不用啊,干脆还是用asp。
 页面数量尽量少
 尽量考虑逻辑上的当前信息
那我们还要asp。net干哈?
少用select * form table这样的语句
不要用服务器端控件??太绝对了吧。不用DataGrid倒是应该的,Repeater倒是挺好用的,建议多多使用。DataSet也是很好的东东嘛。比如首页往往要从好多个表里取记录,而每一个表里只取几条记录,那么访问一次数据库,
把需要的记录都取出来放在DataSet里面不是挺好的吗?节省了访问次数,缩短了open的时间,只是多占用了一点点内存。ViewState一般都是可以禁用的,可以减少网页的体积。分页的时候,第一页直接用 select top 20 ... 的方式。
因为第一页的访问率绝对是很高的,这样可以节省很多的内存。
静态的
但是 能生成静态页面的 就生成 静态页面
能不用服务器控件的 也不要用
能用js完成的东西
不要写后台代码
还有就是 数据库SQL 的代码优化
服务器均衡 等等
关闭 调试模式
数据访问
不要烂用DataSet 能用DataReader的地方尽量用DataReader
关闭不必要的ViewState
能用Cookies的不要用Session
SQL使用存储过成
如果不用还要自己去写代码一行一行地显示。菜鸟飞过...................嘎嘎