優化.NET網站七招
来源:互联网 发布:vscode linux插件 编辑:程序博客网 时间:2024/05/20 09:25
1.减少往返行程(Reduce Round Trips)
使用下面的方法可以减少Web服务器和Browser之间的往返行程:
(1)为Browser启用缓存
如果呈现的内容是静态的或变化周期较长,应启用Browser缓存,避免发出冗余的http请求。
(2)缓冲页面输出
如果可能,则尽量缓冲页面输出,处理结束后再一次传送到客户端,这可以避免频繁传递小块内容所造成的多次网络交互。由于这种方式在页面处理结束之前客户端无法看到页面内容,因此如果一个页面的尺寸较大的话,可考虑使用Response.Flush方法。该方法强制输出迄今为止在缓冲区中的内容,你应当采用合理的算法控制调用Response.Flush方法的次数。
(3)使用Server.Transfer重定向请求
使用Server.Transfer方法重定向请求优于Response.Redirect方法。原因是Response.Redirect会向Broswer回送一个响应头,在响应头中指出重定向的URL,之后Brower使用新的URL重新发出请求。而Server.Transfer方法直接是一个简单的服务端调用,完全没有这些开销!
需要注意Server.Transfer有局限性:第一,它会跳过安全检查;第二,只适用于在同一Web应用内的页面间跳转。
2.避免阻塞和长时间的作业
如果需要运行阻塞或长时间运行的操作,可以考虑使用异步调用的机制,以便Web服务器能够继续处理其它的请求。
(1)使用异步方式调用Web服务和远程对象
只要有可能就要避免在请求的处理过程中对Web服务和远程对象的同步调用,因为它占用的是的ASP.NET 线程池中的工作线程,这将直接影响Web服务器响应其它请求的能力。
(2)考虑给不需要返回值的Web方法或远程对象的方法添加OneWay属性
这种模式能让Web Server调用之后就立即返回。可根据实际情况决定是否使用这种方法。
(3)使用工作队列
将作业提交到服务器上的工作队列中。客户端通过发送请求来轮询作业的执行结果。
3.使用缓存
缓存能在很大程度上决定ASP.NET应用的最终性能。Asp.net支持页面输出缓存和页面部分缓存,并提供Cache API,供应用程序缓存自己的数据。是否使用缓存可考虑下面的要点:
(1)识别创建与访问代价较大的数据
(2)评估需要缓存数据的易变性
(3)评估数据的使用频次
(4) 将要缓存数据中易变数据和不变数据分离,只缓存不变数据
(5)选择合适的缓存机制(除Asp.net Cache外,Application state和Session state也可以作为缓存使用)
- 優化.NET網站七招
- .NET
- .net
- .net
- .NET
- .net
- .NET
- .net
- .net
- .net
- .NET
- .net
- .net
- .net
- .net
- .NET
- net
- .net
- daemon编程小结
- ofstream 和ifstream的具体用法
- linux下svn的配置方法
- 互联网技术峰会资料
- 这个冬天,我以《监控》下酒
- 優化.NET網站七招
- Keycode对照表
- register_globals使用详解 为什么我的表单无法传递数据?为什么我的程序无法得到传递过来的变量?
- 修改指定IE查看源文件方式为EditPlus
- find命令
- Keil C51初始化代码 Startup.a51的中文说明
- 关于session的实现:cookie与url重写
- 网络系统集成知识基础和方法
- jforum论坛框架介绍