`

Google Code是怎么实现页面加载速度提高30%-70%的

阅读更多

相信很多接触到Web开发方面的人都知道Yahoo Developer Network的一篇文章 “Best Practices for Speeding Up Your Web Site” 我觉得这篇文章称作Web开发的圣经也不算过分,他们的34条铁律我几乎每隔几天都要温习一下并努力实践到自己的工作中。没有看到过这篇文章的人可以赶快看一下 Best Practices for Speeding Up Your Web Site


在High Performance Web Sites这本书里(我也没看过),作者写到只有10%-20%的页面加载时间是下载HTML,另外的80%-90%的时间都是在下载页面的其他元素,我想应该是指Image, Javascript, CSS等等。因为这些元素都是有单独的HTTP Request来加载的。而Best Practices for Speeding Up Your Web Site这篇文章的第一条铁律就是最大限度减少HTTP Request.


Google Code就是把精力集中在了减少那些"其他元素"的数量和大小,也就是减少Http Requests的数量,以下是他们进行的几项改进:


1. 合并减少网站的JavaScript和CSS文件

    下载Javascript和CSS文件会阻碍其他部分页面的生成,Google Code团队把常用的Javascript和CSS文件分别合并成了一个文件,这样就把原本的20个文件合并成了两个,HTTP request的数量也从20个减低到了两个,而且他们也去掉了javascript和css文件中的不必要的空格然后把function和变量的名字都改的很短。这个我相信,大家到google首页上点击右键看看google的网页源代码就知道google为了性能有多不择手段了。


2. 把经常使用的图片合并成一个

    Google Code网站上本来有七个全站使用的图片文件,包括google code的logo, 页脚的googley balls和其他小图片。

    虽然浏览器会并发的下载这些图片,但是google code还是把这些图片合并成了一个,这样就只有一个HTTP request了。然后显示的时候只显示这个大图片的一部分。例如原来的代码如下:

<img src="/images/plus.gif" />

他们给改成了:<div style="background-image:url(/images/sprites.gif); background-position:-28px -246px; width:9px; height:9px">&amp;</div></span>

我觉得他们真是绞尽脑汁了,而且也不知道这样做是不是起到了效果,感觉CSS定位要显示哪一部分也需要时间的吧。


3. 为Google AJAX API的加载模块(google.load)实现lazy loading

关于Google AJAX API可以参考我的另外一篇blog  借用Google的Javascript API Loader来加速你的网站

Google Code肯定用他们自己家的东西了,不过他们也挑出来了一些小毛病,在这些Google AJAX APIs(例如Jquery, prototype等等) 初始化和使用之前,需要首先加google loader模块 (google.load), 通常情况下,google.load可以通过在head之间加入一些代码加载:

<script type="text/javascript" src="http://www.google.com/jsapi"></script>

通常情况下这段代码都是正常工作的,但是在他们优化静态内容显示的性能的时候,这段代码会阻碍页面其他部分页面的生成,只有这个script加载完毕以后,其他页面才能显示出来,所以google code就实现了这段代码的lazy loading,也就是只有在需要的时候才加载这段脚本。他们的实现方法:

     1) 在<head>标签内,使用DOM脚本来实现只有需要的情况下才加载google.load

 if (needToLoadGoogleAjaxApisLoaderModule) {
    // Load Google AJAX APIs loader module (google.load)
    var script = document.createElement('script');
    script.src = 'http://www.google.com/jsapi?callback=googleLoadCallback';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);
}



通过Google Code做得测试,他们的页面加载速度大大提高了30%-70%, 惊奇!看来他们提供的这些方法并不是鸡蛋里面挑骨头,而是大有必要实施在我们的项目中的。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jinhuiyu/archive/2009/01/29/3854344.aspx

分享到:
评论

相关推荐

    Google Code Prettify

    5. **性能优化**:Prettify 在处理大量代码时,性能表现良好,因为它采用的是流式解析而非一次性加载整个文档,这样可以减少内存占用并加快页面加载速度。 6. **简洁的API**:Prettify 提供了一套简单的 API,允许...

    disable-google-mapsV2.0.zip

    在WordPress网站开发中,谷歌地图的集成常被用于提供地理位置信息,然而,对于某些站点来说,谷歌地图的加载可能会导致页面加载速度减慢,影响用户体验。为此,"disable-google-mapsV2.0.zip"这个压缩包提供了一个...

    elements-amp-material-mobile-google-amp-mobile-template-YDVF85-2019-04-26.zip

    这有助于控制页面渲染的资源消耗,保持页面加载速度。 3. **AMP JavaScript**: AMP项目提供了自己的JavaScript库,用于处理交互和动画,同时保证它们不会阻塞页面渲染。在代码文件中,你可以看到如何正确地集成和...

    Google v8 javascript engine source code

    9. **代码缓存**: V8将已编译的代码存储在磁盘上,当再次遇到相同的代码时,可以快速加载和复用,提高了加载速度。 10. **内存管理优化**: V8使用多种内存压缩策略,以减少内存占用,提高整体性能。 V8的源代码库...

    fonts.googleapis.com/css和html5shim.googlecode.com/trunk/html5.js 本地文件下载

    将这个CSS文件下载到本地,可以避免因网络问题导致字体加载失败,同时也可以减少对第三方服务的依赖,提高页面加载速度。 另一方面,"html5shim.googlecode.com/trunk/html5.js" 是一个HTML5 Shim的JavaScript文件...

    谷歌浏览器-vue插件-5.3.4-0.zip

    6. **集成开发环境(IDE)增强**:增强Chrome浏览器与Vue开发相关的IDE(如Visual Studio Code、WebStorm等)的集成,实现代码同步、错误检测等功能。 压缩包内的5.3.4_0.crx文件是Chrome扩展程序的标准格式。要...

    jquery图片延迟加载

    这项技术的核心思想是只在用户实际需要时才加载图片,从而优化网页性能,提高页面加载速度。 ### 1. 基本原理 图片延迟加载(Lazy Loading)基于滚动事件,当用户滚动到图片所在的视口区域时,jQuery会触发加载...

    微信扫码下载app页面

    比如,加载速度要快,界面设计要简洁明了,指示清晰,下载过程中的提示信息要准确及时,以便用户能够顺利地完成整个下载和安装流程。 综上所述,微信扫码下载App页面融合了二维码技术、设备识别、多浏览器兼容、...

    Angular Source Code Tour [pdf]

    这对于提高 SEO 性能和初始加载速度非常重要。 #### 十三、@angular/http 尽管 @angular/http 已经被废弃,但它曾经是 Angular 提供的用于发送 HTTP 请求的标准方法。现在,开发者应该使用 `HttpClient`,它位于 `...

    jquerymobile google地图插件jquery-ui-map

    - **性能优化**:在移动设备上,要特别关注地图的加载速度和内存占用,避免过多的标记和复杂的交互可能导致的性能问题。 - **响应式设计**:确保地图在不同分辨率和屏幕尺寸的设备上都能正常显示。 通过深入理解和...

    35个Google开源项目

    10. **SpriteMe**:这是一个工具,简化CSS精灵的创建,通过合并多个图像为一张大图,提高网页加载速度。 11. **Reducisaurus**:这是一个基于YUI压缩算法的在线服务,用于压缩CSS和JavaScript文件,优化网页性能。 ...

    web 开发课件使用,入门,提高

    - 压缩和合并文件:减少HTTP请求,提高页面加载速度。 - 使用CDN(内容分发网络):加速静态资源的访问。 - 缓存策略:利用浏览器缓存,降低服务器压力。 10. **安全实践** - HTTPS:加密通信,保护用户数据...

    35个google开源项目

    11. **Reducisaurus**:基于YUI压缩算法,Reducisaurus是一个运行在Google App Engine上的CSS和JS文件压缩服务,能够显著减小文件大小,加快网页加载速度。 12. **JaikuEngine**:JaikuEngine是一个基于App Engine...

    网页设计之网址导航收藏引导页面 可查网址延迟 html代码版

    这种技术通常结合JavaScript和第三方API(如Google PageSpeed Insights API)实现,通过分析服务器响应时间和网络状况来评估页面加载速度。在HTML中,可以添加事件监听器来触发延迟检测,并使用内联提示或弹窗显示...

    Apache Cordova In Action Source Code

    8. **性能优化**:由于Cordova应用是基于Web技术,因此需要关注性能问题,如页面加载速度、内存管理等。优化策略可能包括减少HTTP请求、使用异步编程、合理使用Web Workers等。 9. **测试与调试**:掌握模拟器和...

    swift-react-native编写网易新闻客户端

    - 优化加载速度,如延迟加载、按需加载图片,减少不必要的网络请求。 8. **错误处理和调试**: - 使用`console.log`进行基本调试,配合React-Native Debugger工具进行更深入的调试。 - 设置错误边界和异常处理...

    前端的一些网站记录

    - Google页面加载速度分析:一个提供页面加载性能分析的工具,帮助开发者了解并优化网站加载速度。 - 手机端web调试Console:一个在线工具,模拟移动设备的调试环境,方便开发者在没有实体设备的情况下测试网页。 ...

    前端开源库-webpack-react-webp

    相比于常见的JPEG和PNG格式,WebP可以显著减小图片大小,从而加快页面加载速度,优化用户体验。在Webpack配置中,可能需要添加特定的加载器(如`file-loader`或`url-loader`)来支持WebP格式的图片处理。 4. **...

    html-minifier-gh-pages.zip_Help!_html minfier

    HTML Minifier是一款强大的工具,主要用于优化和压缩HTML代码,从而减少网页的大小,提高网站的加载速度和性能。"html-minifier-gh-pages.zip" 是这个工具的一个版本,可能包含了源代码、文档和其他相关资源,方便...

Global site tag (gtag.js) - Google Analytics