相对成熟的后端性能测试工具LoadRunner和开源的jmeter。前端性能一直缺乏更多的重视以及测试、优化的文档支持。这里简单介绍下前端性能的意义、关注重点、测试方案和优化技巧
1、前段性能的意义
对于访问一个网站,最花费时间的并不是后端应用程序处理以及数据库等消耗的时间,而是前端花费的时间(包括请求、网络传输、页面加载、渲染等)。根据web优化的黄金法则:
80%的最终用户响应时间花在前端程序上,而其大部分时间则花在各种页面元素,如图像、样式表、脚本和Flash等,的下载上。减少页面元素将会减少HTTP请求次数。这是快速显示页面的关键所在。
根据著名的“2-5-8原则”,用户访问一个页面:
当用户能够在2秒以内得到响应时,会感觉系统的响应很快;
当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;
当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;
而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。
对于一个网站如果希望抓住用户,网站的速度以及稳定性是首当其冲的。目前性能已经被列入google的网站的排名规则中。
相关文章Web Performance Optimization (WPO) – As Business Critical as SEO
2、前端性能关注的重点
2.1 加载时间指标,主要包括三个时间断
a. Time to First Impression
表示从用户在浏览器键入url按下回车键一刻开始到页面开始有反应(用户可以在页面中看见一点点内容)为止。经常能感觉到的一个信号就是网页开始显示title。
b.Time to onLoad Event
表示从页面开始显示内容,到浏览器开始触发OnLoad函数这一时间段。只有当初始的文本和所引用的对象加载完成,浏览器才开始触发OnLoad函数
c.Time to Fully Loaded
表示从上一时间段末到整个网页完全加载完成(所有OnLoad函数以及相关的动态资源加载完成)。在网页中含有timeout或定时刷新之类处理时较为难判断结束点。
2.2 资源情况指标
网页由初始的html文本中嵌入图片以及通过XHR或者修改dom树动态加载的内容组成,css负责样式,js负责行为。所以当网页资源过多为了下载资源,客户端和服务器的网络来回就更多。下面是资源方面相关的指标。
a. Total Number of Requests
包括html网页请求,css、js资源下载及其它网络请求。优化的目标之一是要尽量减少请求数。
b. Total Number of HTTP 300s/400s/500s
表示返回状态为300(重定向)、400(客户端错误)、500(服务器端错误)的http请求。尽量避免这些请求,以提高页面load的时间。造成这些状态的原因经常是服务器的实施、配置和部署问题。
c. Total Size of Web Site
构成网页元素总的大小。图片或者js库的增加都会对下载时间造成重要的影响。
d. Total Size of Images/CSS/JS
image、css、js在网页元素大小中占主要比例。
e. Total Number of XHR(XMLHttpRequest) Requests
通过js异步从服务器端获得数据的请求数。一些js框架提供了跟服务器端的更新机器,就是XHR请求。通过配置可以减少XHR请求的数目
2.3 网络连接指标
浏览器底层的网络连接对资源的下载速度有很大影响。资源的下载过程分为很多阶段。下面介绍这些阶段以及浏览器、网络、请求如何影响这些阶段的时间
a. DNS Time
dns 查询的时间。网页请求会产生一次寻找该网页资源所在主机的dns查询。在同个域名进行网页切换不会造成新的dns查询。
b. Connect Time
指浏览器和服务器之间建立tcp/ip连接的时间,对于ssl连接包括握手的时间。网络连接过慢、使用ssl、使用短连接而非常连接都是造成connect time较多的原因。
c. Server Time
指收到请求后服务器逻辑处理的时间,
d. Transfer Time
这一指标与浏览器和服务器之间的连接速度相一致,通过减小传输内容或使用cdn来降低Transfer Time。
e. Wait Time
等待时间和同一个域中服务资源的数量直接相关。每个域的浏览器的物理网络的限制,导致资源等待可用的连接。减少资源的数量,或将资源散布在不同的域,能将这一时间降低。平均等待时间的大小更能反映等待时间是否需要注意。
f. Number of Domains / Single Resource Domains
部署网站资源的域主机数量是很重要的,因为它影响的DNS,连接和等待时间。
专门用户资源下载的域是必要的,他将直接减少等待时间。应避免单一的资源域,否则你将为dns查询以及资源下载付出昂贵的代价。
参考:关于前端的关键性能指标Key Performance Indicators
3、前段性能测试
3.1 DynaTrace AJAX
本来是应该按照测试点列举的,但基本能想到的测试点都可以用DynaTrace AJAX进行检测,就将DynaTrace AJAX作为小标题,也由此可见DynaTrace AJAX的强大。连JQuery的创始者John Resig也极力推荐,并高度赞誉写了篇简单手册Deep Tracing of Internet Explorer
DynaTrace AJAX是一个运行在IE浏览器下的免费页面性能分析工具,它可以支持主流的IE6、IE7、IE8浏览器。
关于DynaTrace的排名
dynaTrace AJAX also calculates Ranks for Browser Caching, Network Resources, JavaScript/AJAX and Server-Side Activities.
The overall rank is calculated by weighting in 10% on each of these Sub Ranks. The overall rank therefore is calculated by taking 60% of the rank based on the KPI's and 10% each from Caching, Network, JavaScript and Server-Side.
dynaTrace中文基础篇
A Step-by-Step Guide to dynaTrace Ajax Edition
Deep Tracing of Internet Explorer
DynaTrace Ajax Edition:IE浏览器性能分析工具
4、前端性能优化的技巧
图片优化:
http://www.ibm.com/developerworks/cn/java/j-lo-javawebhiperf1/index.html
两篇关于前端性能优化的文章:
Yahoo团队经验:网站性能优化的34条黄金法则
Web应用性能优化黄金法则
dynatrace网上的一些建议:
https://community.dynatrace.com/community/display/PUB/Best+Practices+on+Server-Side+Performance+Optimization
https://community.dynatrace.com/community/display/PUB/Best+Practices+on+JavaScript+and+AJAX+Performance
https://community.dynatrace.com/community/display/PUB/Best+Practices+on+Browser+Caching
分享到:
相关推荐
### 网页设计师必看:14个必备Web前端开发速查手册 #### 引言 随着互联网技术的快速发展,Web前端开发已经成为一个至关重要的领域。无论是对于专业的网页设计师还是初学者来说,掌握必要的前端技能都是提升工作效率...
- 前端性能监控:采用性能监控工具持续监测Web应用的性能,快速定位性能瓶颈。 3. 解决方案和技巧: - 利用服务工作线程(Service Worker)实现离线功能。 - 采用渐进式Web应用(Progressive Web Apps, PWA)...
### Nginx 高性能 WEB 服务器系列知识点详解 #### 1. Nginx 入门简介 **Nginx** 是一款广受...通过对上述知识点的学习和实践,可以更好地掌握 Nginx 的配置和优化技巧,为企业搭建高效稳定的 WEB 服务提供有力支持。
综上所述,"2021web规范.zip"的文档详细涵盖了前端开发的各个方面,从基础语法到高级框架,从设计原则到优化技巧,都是前端开发者需要掌握的知识点。遵循这些规范,可以提升开发效率,保证项目的质量和稳定性。
在现代Web开发中,前端项目的复杂性和性能优化一直是开发者关注的重点。"前端项目-frzr.zip"是一个专注于高性能的轻量级视图库,名为“frzr”。该库的设计理念是通过最小化资源消耗,提高网页的加载速度和用户体验,...
内容压缩和减小文件大小也是前端性能优化的重要组成部分,书中对如何通过压缩技术减少数据传输量进行了探讨。此外,还涵盖了如何优化Web图形和CSS来提升页面渲染速度,以及JavaScript、文档对象模型(DOM)和Ajax的...
- 对用户体验有高度敏锐的洞察力,持续优化用户体验和前端性能。 - 解决各种浏览器之间的兼容性问题,确保产品在不同设备上的良好表现。 4. **技术创新:** - 关注前沿技术发展动态,通过技术创新加速业务目标的...
4. **测试与调试技巧**:涵盖自动化测试策略、性能优化指南等主题,确保项目质量。 5. **跨平台与移动设备兼容性**:教授如何构建响应式网站,使其在不同设备上都能良好显示。 6. **部署与托管解决方案**:分享最佳...
- 掌握前端性能优化方法,能够有效提升页面加载速度和用户体验。 2. **项目实践经验**: - 参与大型项目——云管理平台的前端开发,负责数据展示、数据操作等功能的设计与实现。 - 运用React技术快速完成系统...
参考链接中的文章提供了丰富的面试准备资源,包括中高级前端面试秘籍、面试经验分享、JavaScript手写代码技巧等,可帮助你更全面地准备面试。在面试过程中,清晰阐述项目经验,展现你的思考和解决问题的能力,将是...
它允许开发者使用Java语言编写复杂的前端代码,并将其编译为高度优化的JavaScript,从而在浏览器中运行。GWT的主要优点包括: - **跨平台兼容性**:GWT自动生成兼容所有主流浏览器的JavaScript代码。 - **开发效率*...
这部分内容可以帮助你快速了解项目的重点和亮点,同时也可以借鉴其中的设计思路和演示技巧,对于提升自己的项目汇报能力有所帮助。 三、源代码 源代码是整个项目的核心部分,包含了前端界面、后端逻辑以及数据库...
- **测试调试**:进行功能测试和性能优化,确保项目的稳定性和用户体验。 #### 第一部分:实验预习报告 ##### 基于框架的Web前端设计 本次实验聚焦于使用前端框架进行Web应用的设计与开发。框架的选择基于项目的...
7. 测试文件:使用诸如Mocha、Jest等测试框架编写的测试用例,用来检查用户的解决方案是否正确。 8. 构建脚本和配置文件:如package.json,webpack配置,gulpfile.js等,用于自动化构建和打包过程。 通过这些练习,...
10. **部署与性能优化**:介绍如何将ASP.NET应用部署到IIS服务器,以及性能监控和优化技巧,如缓存策略、负载均衡和性能计数器。 11. **Web前端技术**:虽然不是ASP.NET本身的一部分,但HTML、CSS和JavaScript是Web...
同时,可能会讨论响应式设计、Web性能优化、无障碍访问性等重要话题,帮助开发者提升用户体验。 二、后端架构 后端架构设计关乎系统的稳定性和扩展性。合集可能包含Java、Python、Go等编程语言的最佳实践,以及...
5. **Frontend Architecture**:面试官会询问关于前端架构的知识,如模块化、单页应用(SPA)的构建、性能优化策略(如代码分割、懒加载)以及如何处理大型项目的可维护性和扩展性。 6. **Ajax**:Ajax是实现页面无...
数据库设计也是这一环节的重点,包括表结构设计、索引优化以及SQL查询优化等。 在测试阶段,论文会介绍单元测试、集成测试和系统测试的方法,确保每个模块和整个系统的功能正确性、性能和稳定性。可能会使用JUnit...