热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WEB应用性能优化常规方法

基于微软平台WEB应用程序在投入生产环境运行时通常会碰到由于访问压力增大而需要进行性能优化,这个阶段往往被开发组忽略,项目日程计划中往往没有安排(我见过的项目大约有80%在系统开发阶段都没有能够在系统

基于微软平台WEB应用程序在投入生产环境运行时通常会碰到由于访问压力增大而需要进行性能优化,这个阶段往往被开发组忽略,项目日程计划中往往没有安排(我见过的项目大约有80%在系统开发阶段都没有能够在系统架构中考虑到这个问题),

在UAT阶段此问题的出现一般是UAT用户根据感觉来提出此问题:系统响应非常慢,页面刷新要等10秒钟... 开发组要向客户提出解决方案来解决此问题,通常的方式是对页面的响应速度给出量化的数据来衡量,与客户就页面响应速度达成一个量化的目标。目标确定后,作为开发组必须给出优化的方法,以下是常规方法:

Yahoo针对FireFox浏览器推出了YSlow插件,用于分析网页,并根据一些高性能网站的规则进行相应的评级打分,对于网页性能优化有很好的帮助作用,告诉你那些部分影响了你的网页速度,并告诉你如何基于某些规则而进行优化。但是需要安装FireFox浏览器且必须安装FireBug和YSlow这两个插件,这两个插件貌似没有中文版的。网上搜索到的for ie版本均是假的

Fiddler是一个Web Debug工具(最重要的是这个工具即适用于IE也适用于FireFox等浏览器,HttpWatch也是类似的工具,不过HttpWatch专业版不是免费的),该工具可分析浏览器发往服务器的HTTP请求以及服务器的返回信息,可以详细看到每个页面的响应时间以及完成一个功能所发生的所有Http请求统计,并且有图形化的时间消耗图,可以直观的分析某个功能请求中速度慢的是哪个页面或者资源(图片、脚本等)请求。

 这里列出以下常规优化动作:

  1. 通过HTTP请求分析,尽可能减少HTTP请求数量,通常是项目工程中的图片、CSS、JS,尽可能合并项目工程中的这些资源,以达到最少的Http请求次数
  2. 使用CDN(内容分发网络),这个方案要小心提出,CDN的建设复杂度比较高,通常会导致客户另行投入成本(比如采购硬件或者软件来实现),对于跨国性或者全国性多点分布式部署的项目可以提出此建议
  3. 启用WEB服务器的内容过期功能,这个也主要是针对项目工程中的CSS、JS等资源文件而言,在IIS中启用内容过期时,浏览器会根据服务器返回的HTTPHeader信息来主动决定从本地缓存读取还是从服务器读取,没有启用内容过期时,浏览器每次发请求给WEB服务器,服务器返回304状态来表示可以从本地缓存读取,多一次访问请求。
  4. 启用HTTP压缩,这是通过压缩服务器与浏览器之间传输的文本内容(通常是CSS、JS),启用方法是在IIS中进行配置。这个方法视1、3两个方法执行的结果而定是否进行,目前的AJAX系统可以考虑这个方法
  5. CSS在页面头部、JS在页面尾部、且CSS、JS都使用外部文件引用方式,有利于形成有效的本地缓存
  6. 单个页面中包含的主机域名保持在4个以内,避免DNS查询带来的额外开销。在企业网络环境复杂的情况下这个方法往往能收到奇效
  7. JS文件进行压缩处理,有一些工具能够将JS文件进行压缩,以减小网络传输流量,比如ESC的最大压缩比率能达到65%,效果比较明显。这个方法能否使用需要进行详细测试,因为压缩工具有不同的特性,可能对JS会造成损坏,比如ESC工具的js压缩级别4会把变量名修改,如果你的js中用到了全局变量或者类的话,就不能使用该压缩级别了,否则其它使用你的js的文件可能会无法正常运行
  8. 避免服务端重定向操作,重定向操作带来的额外开销比较多,在系统开发初期就要避免掉这种操作
  9. 去除WEB服务器端得ETags标签,ETags是WEB服务器和浏览器用于判断浏览器缓存中的内容和服务器中的原始内容是否匹配的一种机制,去掉ETag标签会减少响应和下次请求中文件的大小,从而提高WEB服务器的性能。此方法需谨慎使用,企业应用中往往要求页面每次都必须请求新内容,使用此方法可能会造成一些问题。

 

 


推荐阅读
  • IsapiCache组件 - 自动为网站生成…
    sapiCache是一款自动为网站生成静态页面的IIS组件(ISAPI筛选器),静态页面可以有效的加快网站访问速度,大大减轻服务器负担。工作原理是组件把服务器返回给客户端的网页源码保存起来,生成静态文 ... [详细]
  • 校内无法访问IEEE等部分数据库的解决方案
    解决了校内无法访问IE ... [详细]
  • JSCoverage-->JavaScript测试覆盖率检测工具(转),Go语言社区,Golang程序员人脉社 ... [详细]
  • 凡客诚品官方网站的前端改进建议
    打开http:www.vancl.com发现采用的Asp.net,这点我感到很欣慰,毕竟国内采用.net技术体系的优秀网站少之又少。好奇之余右键-查看源 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • JavaWeb介绍概念JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有javaapplet,不过使 ... [详细]
  • ItriedtouseFirebugLite(viathebookmarkletandalsoaddingittooneofmywebsites).我尝试使用Fi ... [详细]
  • 有个事情移植想不明白
    后端开发|php教程不明白,移植,事情后端开发-php教程为什么我客户端通过http请求服务端服务端发张图片到客户端这个传输为什么那么慢一共也就300多kb但一共传了5秒多如果直接 ... [详细]
  • 高仿CSDN社区树形图 .
    一直感觉CSDN社区的树形结构特别的人性化,直观化。最近做系统的时候需要用到这个树形结构,于是模仿CSDN的树形结构做了一个自己的树形结构, ... [详细]
  • http会话(session)详解by:授客QQ:1033553122会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • SeleniumWebDriver3.0自动化测试框架实战指南 ... [详细]
author-avatar
孙一诺她爹_480
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有