`
zysoo
  • 浏览: 28072 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

加速你的网站的最佳实践(翻译之雅虎开发网站)

阅读更多

注:本文内容翻译之雅虎开发网站(http://developer.yahoo.com/performance/rules.html),系原创,如引用,请注明。

1.减少HTTP 请求

80%的终端用户都把时间浪费在前端。大部分时间都被束缚在下载页面的部件(components )上:图片,样式,脚本,Flash等。减少部件的数量能够减少传输页面时候需要的HTTP请求。这是页面快的关键。
一种降低部件数量的方法是简化页面设计。那么有没有一种方法设计富客户端(richer content)时,也能快速响应呢?
下面一些方法技术可以降低HTTP请求的,而且也支持富页面设计。
联合的文件(Combined files)通过整合所有的脚本到单个脚本中并且简化所有的CSS到一个样式文件中来减少HTTP请求的数量。当脚本和样式在页面中很多的时候,整合起来还是很有挑战性的,但是做完可以提高你系统版本的响应时间。
CSS Sprites(http://alistapart.com/articles/sprites)是一种比较好的方法来降低图片请求的方法。整合你的背景图片到一个图片,使用CSS的 background-image和background-position properties来满足你的图片布局需求。
Image maps整合多个图片到一个图片中。总的大小是一样的,但却降低了HTTP请求的数量,提高页面访问速度。图片地图只有在靠近的时候才起作用,比如导航条。定义图片坐标比较无聊,而且容易出错。在导航条中使用图片地图也是不容易访问。所以不推荐。
内联图片(Inline images)使用data: URL scheme把图片陷入实际页面中。这也能增加页面的大小。整合内联图片到你的样式中,这也是一种减低HTTP请求,避免增加你页面大小的方法。但内联图片不被所有主流浏览器支持。
在你的页面中,从减少HTTP的请求数量开始,这是最重要的提高性能的准则。正如Tenni Thenurer的blog中写到“Browser Cache Usage - Exposed!”40%到60%的日常用户访问的时候,没有使用到缓存。让第一个访问你的页面的人感觉很快,这是好的用户体验的关键。


2.使用内容分发网络(Content Delivery Network)

接近你web服务器的用户对于响应时间比较有印象。把你的应用部署多种的,跨区域的服务器上能够是你的页面加载时间短于用户的预期,但是你该从哪里开始呢?
实施不同地区的部署的第一步,不要尝试重新设计你的WEB应用来适应分散的模型。随着应用的不同,改变设计模型可能带来风险,比如同步session状态和跨数据库的复制事务。尝试去降低你的用户和应用之间的距离,可能导致延迟,或者不能访问,
记住,80-90%的终端用户的响应时间花在下载所有的页面部件上:图片,样式,脚本,Flash等。这是性能黄金定律。与其进行重新设计你的应用模型这样困难,不如首先分散你的静态内容。这不但能大大缩小响应时间,而且用内容分发系统来实现很简单。
一个内容分发系统(CDN)是一个web服务器的收集,用于有效地跨区域发送应用给用户。服务器发送应用到特定的用于是基于网络距离来衡量。比如拥有比较少的网络跃点或者相应时间小的服务器将被选中。
一些大的互联网公司拥有自己的CDN,但比较有性价比的方法是使用CDN服务商提高的服务,比如Akamai Technologies, Mirror Image Internet, or Limelight Networks。对于刚起步的公司,或者个人的网络站点,一个CDN服务的费用可能负担不起,但是随着你的用户快速增长,并变得全球化,一个CDN服务让响应变快就显得很必要了。在雅虎,把静态资源移到CDN上使得终端用户的访问速度提高了20%。转变到CDN上是一个相对简单的变化,但是却能大幅提高网站的速度。

3.添加一个Expires或者Cache-Control Header

这一条有两点需要注意:
    1)对于静态资源:通过设置很长时间的过期头,使用“永不过期(Never expire)”策略
    2)对于动态内容:使用一个适当的Cache-Control头帮助浏览器处理相应请求。
页面设计变得越来越复杂,意味着使用了更多的脚本,样式,图片和Flash。



to be continued

3
1
分享到:
评论

相关推荐

    雅虎最佳实践之加速网站速度法则

    【雅虎最佳实践之加速网站速度法则】是针对提升网页加载速度的一系列技术措施,旨在优化前端页面和后台代码,从而提高用户体验。以下是对这些法则的详细解释: 1. **前端页面优化** - **减少HTTP请求次数**:HTTP...

    雅虎给出的34条网站加速方法

    雅虎给出的34条网站加速方法

    雅虎乐译(翻译工具)

    雅虎乐译是一款备受推崇的翻译工具,它集成了多种语言的翻译能力,为用户提供高效、准确的跨语言沟通服务。这款应用旨在帮助用户轻松解决语言障碍,无论是学习英语还是其他语言,都能大大提升用户的便利性和效率。在...

    伪雅虎Tab标签

    标题中的“伪雅虎Tab标签”指的是在网页设计中,模仿雅虎网站风格创建的Tab式导航栏。这种设计方式可以提升用户体验,使用户能够快速地在不同的内容区域之间切换,而无需刷新整个页面。Tab标签是网页界面设计中常见...

    雅虎屏幕取色器

    雅虎屏幕取色器,这是一款专为网页设计人员和开发人员量身打造的实用工具,它以其高效、便捷的特性在业内广受好评。这款软件的绿色版设计,意味着无需安装,不带任何广告或插件,确保了用户的使用体验纯净无干扰。只...

    matlab开发-雅虎实时数据反馈

    对于`matlab开发-雅虎实时数据反馈`,它可能说明了如何将这个功能集成到现有的MATLAB环境中,或者提供了使用此功能前的注意事项。 最后,`@yahooRT`可能是一个MATLAB的类定义文件,它定义了一个名为`yahooRT`的类,...

    获取雅虎天气YahooWeatherHttp_20150827

    四、API限制与最佳实践 雅虎WeatherHttp API对免费用户有一定的调用限制,因此在开发过程中要注意合理使用,避免频繁请求。此外,确保在请求头中包含API密钥,遵守雅虎的使用政策,以保证服务的稳定性和账号的安全...

    ASP网站实例开发源码——仿雅虎风格音乐(源码+数据库).zip

    这个压缩包文件"ASP网站实例开发源码——仿雅虎风格音乐(源码+数据库).zip"提供了一个完整的ASP网站实例,它仿照了雅虎音乐的风格,包括了源代码和数据库,对于学习ASP开发尤其是音乐类网站的构建极具参考价值。...

    雅虎天气获取

    在IT行业中,获取在线数据是常见的任务之一,而雅虎天气API是一个经典的例子,它允许开发者轻松地获取到实时的天气信息。这个项目的核心在于利用雅虎提供的接口,结合Android平台进行开发,并通过JSON解析技术来处理...

    雅虎API,各种样式

    雅虎API是一个广泛使用的资源,尤其对于初学者和开发者来说,它是探索JavaScript编程的一个宝贵工具。这个压缩包文件包含了各种风格的JavaScript实例,为学习者提供了丰富的实践素材。通过深入研究这些实例,我们...

    雅虎天气API调用

    雅虎天气API调用是开发人员获取实时天气信息的一种方式,它允许开发者通过发送特定的请求到雅虎的服务器,然后获取返回的JSON或XML格式的天气数据。这个API广泛应用于移动应用、网站或者任何需要集成天气信息的系统...

    翻译软件支持多种语言翻译

    谷歌翻译是Google公司开发的一款强大翻译工具,支持上百种语言的互译,包括文本、网页以及语音翻译。其采用先进的机器学习技术,如神经网络机器翻译,使得翻译质量不断提高,尤其在常见的语种之间翻译效果显著。 ...

    雅虎开源代码汇集

    "雅虎开源代码汇集"是一个包含多种实用小功能代码的资源集合,主要涉及活动按钮这一领域。...通过研究和利用这些文件,开发者不仅可以学习到具体的编程技巧,还能了解到项目管理和团队协作的最佳实践。

    雅虎助手(曾经的经典)

    《雅虎助手:曾经的经典与浏览器修复技术》 在互联网早期,雅虎助手(Yahoo! Assistant)是一款备受用户青睐的工具软件,它为用户提供了一系列的在线浏览辅助功能,包括网页加速、广告拦截、隐私保护等。这款软件在...

    matlab开发-从雅虎获取股票信息

    在MATLAB中从雅虎获取股票信息是一种常见的金融数据分析任务,可以帮助我们实时或历史地获取股票市场数据,进行各种计算和分析。以下是对这个主题的详细讲解: 首先,`getStockInformation.m` 文件很可能是实现这个...

    SEO工具之雅虎关键词分析软件

    软件介绍: <br>SEO工具-雅虎关键词分析软件1.0版 2007年6月8日诞生,由godknows编写。 <br>虽然雅虎的搜索引擎在国内来说,远远比不上百度和GOOGLE重要,但是也占据了一席之地。 <br>软件的功能,是分析...

Global site tag (gtag.js) - Google Analytics