七巧招进步.NET网站功能 |
发布时间:2019-11-14 文章来源:本站 浏览次数:2380 |
一、削减往复行程(Reduce Round Trips)
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运用内的页面间跳转。 二、防止堵塞和长时刻的作业
1、运用异步办法调用Web服务和长途目标 只要有可能就要防止在恳求的处理过程中对Web服务和长途目标的同步调用,因为它占用的是的ASP.NET 线程池中的作业线程,这将直接影响Web服务器呼应其它恳求的能力。 2、考虑给不需求返回值的Web办法或长途目标的办法增加OneWay特点 这种模式能让Web Server调用之后就当即返回。可根据实际状况决定是否运用这种办法。 3、运用作业行列 将作业提交到服务器上的作业行列中。客户端经过发送恳求来轮询作业的履行成果。 三、运用缓存
1、识别创立与访问代价较大的数据 2、评价需求缓存数据的易变性 3、评价数据的运用频次 4、 将要缓存数据中易变数据和不变数据别离,只缓存不变数据 5、挑选合适的缓存机制(除Asp.net Cache外,Application state和Session state也能够作为缓存运用) 四、多线程
在履行恳求的过程中创立线程是一种代价较大的操作,会严重影响Web Server的功能。假如后续的操作必须用线程完结,主张经过thread pool来创立/办理线程。 2、不要依赖线程数据槽或线程静态变量 由于履行恳求的线程是ASP.NET thread pool中的作业线程,同一个Client的两次恳求不一定由相同的线程来处理。 3、防止堵塞处理恳求的线程 4、防止异步调用 这和1的状况类似。异步调用会导致创立新的线程,增加服务器的负担。所以,假如没有并发的作业要履行,就不要履行异步调用。 五、系统资源
2、明确地调用Dispose或Close开释系统资源 3、不要缓存或长时刻占用资源池中的资源 4、尽可能晚的申请,尽可能早的开释 六、页面处理
包括缩短控件的称号、CSS的class的称号、去掉无谓空行和空格、禁用不需求的ViewState 2、启用页面输出的缓冲区(Buffer) 假如Buffer的机制被封闭,能够用下面的办法翻开。 运用程序翻开页面输出缓存: Response.BufferOutput = true; 运用@Page开关翻开页面输出缓冲机制: <%@ Page Buffer = "true" %> 运用Web.config或Machine.config配置文件的节点:
3、运用Page.IsPostBack优化页面输出 4、经过别离页面的不同的内容,来进步缓存功率和削减出现的时刻 5、优化杂乱和代价较大的循环 6、合理运用客户端的核算资源,将一些操作转移到客户端进行 七、ViewState
1. 封闭ViewState 假如不需求盯梢页面状况,例如页面不会 回传(PostBack)、不需求处理服务端控件事情或许每次页面改写时都会重新核算控件内容,那么就不需求用ViewState来记录页面状况了。能够对特定的WebControl设置EnableViewState特点,也能够在页面一级设置: <%@ Page EnableViewState="false" %> 2、在恰当的时刻点初始化控件特点 ASP.NET的控件在履行结构函数、初始化的期间设置的特点不会被盯梢改变;而在初始化阶段之后对特点的修改都会被盯梢,并终究记录到IE页面的__VIEWSTATE之中。所以,挑选合理的初始化控件特点的履行点,能有效的减小页面尺度。 3、慎重挑选放到ViewState中的内容 放到ViewState中的内容会被序列化/反序列化,Asp.net为String、Integer、Boolean等根本类型的序列化做了优化,假如Array、ArrayList、HashTable存储的是根本类型功率也较高,但其它类型则需求供给类型转换器(Type Converter),否则将运用代价昂贵的二进制序列化程序。 总结:光有了这些技能办法还不够,还需求将这些办法根据你网站的状况灵活运用,当令调整办法,集中解决重要问题,这有这样网站功能才干得到大幅度的优化 |