`
suqing
  • 浏览: 186741 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

dynaTrace之一 —— 网络请求和往返的最佳实践

阅读更多

 

原文地址:Best Practices on Network Requests and Roundtrips

同类文章:dynaTrace之二 —— JavaScript和AJAX性能最佳实践

 

网络请求和往返的最佳实践 

当输入url,浏览器最先请求的是HTML文档。其次是相关图片、css、js文件和其他媒体文件比如flash组件等等。每个资源的下载都需要建立一个连接。一个页面所有资源的下载时间取决于网络速度、潜在因素、服务器处理速度。下载的资源越多,用户看到完整页面花费的时间越多。


为了下载这些资源,浏览器和服务器建立了物理连接。连接的数量取决于浏览器类型和版本,比如:IE7每个主机名并行下载个组件,IE8/FF3.5每个主机名并行下载个组件。

网页资源越多,发起的HTTP请求就越多。由于并行下载数的限制,有些资源必须等待很长的时间才能下载,这就增加了整个页面的加载时间。


下图是一个典型的网络下载图。很明显,从一个域名下载的资源越多,其他单个资源的等待时间越长: 

 

优化网站,需要避免不必要的往返和减小单个资源的大小(《高性能网站建设指南》规则4——压缩组件)。这使得浏览器的可用连接更快地下载所有资源,并且加快页面加载速度,提高终端用户的体验。


避免重定向,HTTP 400和 HTTP 500


HTTP 300(重定向)有时是有必要使用的,比如:表明某个资源的新位置或追踪点击。

重定向意味着浏览器必须采取更多操作来实现请求。重定向会使你的网页变慢。它延迟了整个HTML文档的传输。在HTML文档到达之前,页面中不会呈现出任何东西,也没有任何组件会被下载。在用户和HTML文档间插入重定向延迟了页面中的所有东西。 

因为一开始必须执行重定向,浏览器总共花了430ms下载HTML文件。一旦HTML文件下载完,浏览器才开始下载其他资源比如CSS文件: 

另一个不必要往返的例子是上面的这个请求导致了一个HTTP 400错误(认证问题),用户没有得到他请求的内容。

导致HTTP 400错误有两种常用来源:a) 用户不能访问应用程序代码生成的HTML的相关资源,比如:如果我不是网站的特别成员,我可能没有下载某些资源的权限。b) 对资源的访问控制发生了配置错误,或者资源错误得部署到加过安全设置的文件下。


HTTP 500(服务器端错误)是由失败的应用代码,要解决这个问题必须跟踪到应用服务器端分析代码。

dynaTrace AJAX Edition在Network面板的性能报告中列出了所有的HTTP 300,400,500。哪个请求(url列)返回了哪种状态,并且告诉你避免这些请求可以节省多少时间。



资源的常见问题模式


过多images,css,js文件

网站不止展示包含文本的html文件。大部分内容来自图片和样式,决定了页面内容的如何呈现,如何布局,包含客户端代码的js文件使网站拥有更多的用户交互。

dynaTrace AJAX Edition在Network面板的性能报告中列出了所有css,images,js文件。还给出了当合并这些资源后减少请求往返节省的时间。


臃肿的图片,css和js文件

除了需要关注资源的数量,还需要关注资源的大小。有很多种方法来减少图片的大小(选择不同的图片格式或者其他)和css、js文件(压缩空格和空行)。 Smush.it 提供了优化图片大小的在线服务。

dynaTrace AJAX Edition在性能报告中的KPI面板的第一个表格给出了所有对象的概况。展示了每种mime类型的资源数量、总大小和这些资源是否被缓存。请参考the Best Practices on Caching怎样如何优化使用浏览器缓存: 


建议:

减少图片、css和js不仅加速了网站的载入,而且降低了浏览器内存占用和CPU的使用。以下是一些如何优化资源的技巧。


优化图片(CSS精灵和压缩)

分析所有图片,合并成一个单一文件。不要太过火,把所有图片都合并到一个大图里,以至于所有页面都要加载一个超大的文件。在合并文件之前请详细请阅读 CSS Sprites 和 Best Practices 。看看图片的大小。考虑下其他图片格式(jpg,gif,…)或者选择较低分辨率以减少图片的大小。通过 Smush.it 优化你的图片。

附:Best Practices 的 中文翻译


优化CSS(合并CSS文件)

如果一个页面有多个CSS文件,压缩文件,去掉空格、空行或注释去掉该文件。这样不仅减少了网络往返,也减少了传输内容,减少浏览器的解析时间。阅读 combining and merging CSS files,利用在线压缩工具 例如Online CSS Compressor


优化JS

同理,在线压缩工具JavaScript compressors/minifiers。不要把所有js都放在一个文件里,每个页面都去加载他。


计算范围

dynaTrace AJAX Edition计算出来的分数基于可避免的http请求数量。如果页面没有重定向,400和500,也没有图片、css、js可以合并,得分就是100.

dynaTrace AJAX Edition假设所有images、css、js都来自同一个域,不得超过1个css,6个images,2个js。

如何得到这个数字的?

我们认为所有来自同一个域的css都可以合并到同一个文件中。

至少需要2个js文件,页面早期的js和延迟加载的js。

不是每一个图像都可以合并到同一个文件,6个图像比较合理——这样浏览器可以最佳利用其物理连接

 

 

同类文章:dynaTrace之二 —— JavaScript和AJAX性能最佳实践

 

分享到:
评论

相关推荐

    dynaTrace使用分享-基础篇

    1. **理解网络交互**:监控网络请求的数量与时机,识别延迟来源。 2. **分析JavaScript性能**:追踪JavaScript执行细节,如函数调用时间、事件处理等。 3. **DOM操作分析**:记录DOM变化对渲染时间的影响。 4. **...

    dynatrace3.1.0.763

    6. **AJAX调用可视化**:此版本还提供了AJAX调用的可视化视图,使开发者能清晰地看到每个AJAX请求的生命周期,包括发送、等待和接收的时间,有助于优化网络请求。 7. **扩展性与集成**: Dynatrace 3.1.0.763支持与...

    dynatrace-AJAX-edition软件

    这里我们要介绍的是“dynatrace-AJAX-edition”——一款专注于前端性能测试的利器。 “dynatrace-AJAX-edition”是Dynatrace公司推出的一款强大工具,其主要功能在于帮助开发者检测和分析AJAX应用的性能。AJAX...

    dynatrace-AJAX-edition

    Dynatrace工具提供了一整套的性能指标,包括页面加载时间、DOM元素渲染、脚本执行顺序、网络请求和响应时间等。通过这些详细的数据,开发人员可以定位到导致性能瓶颈的具体代码段,从而进行优化。此外,Dynatrace还...

    Dynatrace AppMon best practices

    本文档提供了关于如何最大化您的Dynatrace AppMon安装的服务器和性能仓库的最佳实践。 首先,关于AppMon服务器的最佳实践: 1. 使用最新可用的操作系统:对于您的Dynatrace AppMon服务器,应该使用最新的操作系统...

    设计开发及运维高效协作——Dynatrace助上汽通用打造性能测试闭环.pdf

    "设计开发及运维高效协作——Dynatrace助上汽通用打造性能测试闭环" 本资源摘要信息主要介绍了上汽通用汽车公司如何通过Dynatrace解决方案来构建高效的性能测试闭环,提高了整体性能测试的效率和价值。 Dynatrace...

    dynatrace-Ajax前端性能测试工具

    "dynatrace-Ajax"是一款专业的前端性能测试工具,它专注于帮助开发者分析和优化网页加载速度、用户交互响应时间以及JavaScript执行效率等关键性能指标。 **一、什么是 dynatrace-Ajax** dynatrace-Ajax 是 ...

    Web性能测试工具dynaTrace的使用说明

    dynaTrace Ajax是一个详细的底层追踪工具,它不仅可以显示所有请求和文件在网络中传输的时间,还会记录浏览器Render、CPU消耗、JavaScript解析和运行情况等详细的信息,而这些也只是dynaTrace Ajax的冰山一角。...

    Dynatrace Gomez解决方案帮助网宿科技拓展并优化CDN服务

    Dynatrace Gomez解决方案是一种综合监控工具,它可以帮助企业拓展并优化其内容分发网络(CDN)服务。CDN是一种使网络内容传输更为高效的服务,通过将内容分布在网络中多个地理位置的服务器上,可确保用户能够更快地...

    隆重推荐全新的Dynatrace

    - **全面覆盖**:Dynatrace提供了一个全面的解决方案,涵盖了应用性能监控(APM)、基础设施监控、用户体验监测和人工智能驱动的操作支持等各个方面。 - **简化管理**:通过将所有这些功能整合到一个平台中,Dynatrace...

    dynatrace安装文档

    ** dynatrace安装文档 ** **一. 部署向导** 在部署 dynatrace 系统时,首先需要进行一系列的规划和计算,确保所选组件...在部署过程中,确保遵循最佳实践,并定期评估和优化配置,以保持 dynatrace 系统的高效运行。

    Dynatrace PerformGo!上海 大会开场致辞

    ** 是由Dynatrace主办的一系列全球性的技术会议,旨在分享最新的软件智能技术和解决方案。上海站作为其中一站,主要面向大中华区的企业和开发者,分享如何利用Dynatrace的技术加速云创新,解决企业面临的软件挑战。 ...

    Dynatrace企业决绝方案帮助保险公司提升在线服务质量

    7. 知识产权说明:文档结尾部分提及了有关Dynatrace产品和服务的商标或注册商标信息,以及与Oracle和Java等其他知名技术品牌的商标权归属,这是IT行业中知识产权法律保护的一个重要体现。 综上,文件中涉及了应用...

    Dynatrace 和 Red Hat Openshift 让您胸有成竹、随心所欲地运用微服务

    Dynatrace的独特之处在于其利用人工智能技术进行自动化的监测、诊断和分析,极大地降低了人工干预的需求。 #### Dynatrace的核心功能 1. **自动发现**:Dynatrace的Smartscape技术能够自动检测环境中所有的组件...

    dynatrace 页面性能

    dynatrace 页面性能测试工具

    dynaTrace AJAX

    【 dynaTrace AJAX 】是...总而言之, dynaTrace AJAX 是一款不可或缺的前端性能优化工具,它通过深入的AJAX性能分析和强大的监控功能,帮助开发者解决复杂的应用性能问题,从而提高网站和应用的运行效率和用户满意度。

    dynaTrace_Ajax版使用指南

    【dynaTrace_Ajax版使用指南】是一篇详细介绍如何使用dynaTrace Ajax版本的文档,旨在帮助用户理解和解决Web 2.0和Ajax应用程序中的性能和功能问题。该指南特别强调了在前端页面生命周期解析方面的详细性,适用于...

Global site tag (gtag.js) - Google Analytics