`

性能优化:如何更快速加载你的JavaScript页面

阅读更多
转:http://developer.51cto.com/art/201203/323057.htm
一键收藏,随时查看,分享好友!

JavaScript现在极其重要。一些网站使用JavaScript来增添魅力;如今的许多Web应用程序依赖它;其中一些甚至是完全用 JavaScript编写而成的。我在本文中将指出一些重要的规则,介绍如何使用你的JavaScript、使用哪些工具以及你将从中得到什么好处。

AD:2013云计算架构师峰会课程资料下载

【51CTO外电头条】 JavaScript现在极其重要。一些网站使用JavaScript来增添魅力;如今的许多Web应用程序依赖它;其中一些甚至是完全用JavaScript编写而成的。我在本文中将指出一些重要的规则,介绍如何使用你的JavaScript、使用哪些工具以及你将从中得到什么好处。

确保代码尽量简洁

不要什么都依赖JavaScript。不要编写重复性的脚本。要把JavaScript当作糖果工具,只是起到美化作用。别给你的网站添加大量的JavaScript代码。只有必要的时候用一下。只有确实能改善用户体验的时候用一下。

尽量减少DOM访问

使用JavaScript访问DOM元素很容易,代码更容易阅读,但是速度很慢。下面介绍几个要点:限制使用JavaScript来修饰网页布局,把针对访问元素的引用缓存起来。有时,当你的网站依赖大量的DOM改动时,就应该考虑限制你的标记。这是改用HTML5、舍弃那些原来的XHTML和HTML4的一个充分理由。你可以查看DOM元素的数量,只要在Firebug插件的控制台中输入:document.getElementsByTagName('*').length。

压缩代码

要提供经过压缩的JavaScript页面,最有效的办法就是先用JavaScript压缩工具对你的代码压缩一下,这种压缩工具可以压缩变量和参数名称,然后提供因而获得的代码,使用了gzip压缩。

是的,我没有压缩我的main.js,但你要检查有没有未经压缩的任何jQuery插件,别忘了压缩。下面我列出了压缩方面的几个方案。

◆ YUI压缩工具(我的最爱,jQuery开 发团队就使用它),初学者指南(http://www.slideshare.net/nzakas/extreme-JavaScript- compression-with-yui-compressor)、第二指南 (http://vilimpoc.org/research/js-speedup/)和官方网站(http: //developer.yahoo.com/yui/compressor/)。

◆ Dean Edwards Packer(http://dean.edwards.name/packer/)

◆ JSMin(http://crockford.com/JavaScript/jsmin)

GZip压缩:其背后的想法是,缩短在浏览器和服务器之间传送数据的时间。缩短时间后,你得到标题是 Accept-Encoding: gzip,deflate的一个文件。不过这种压缩方法有一些缺点。它在服务器端和客户端都要占用处理器资源(以便压缩和解压缩),还要占用磁盘空间。

避免eval():虽然有时eval()会在时间方面带来一些效率,但使用它绝对是错误的做法。eval()导致你的代码看起来更脏,而且会逃过大多数压缩工具的压缩。

加快JavaScript装入速度的工具:Lab.js

有许多出色的工具可以加快JavaScript装入的速度。值得一提的一款工具是Lab.js。

借助LAB.js(装入和阻止JavaScript),你就可以并行装入JavaScript文件,加快总的装入过程。此外,你还可以为需要装入的脚本设置某个顺序,那样就能确保依赖关系的完整性。此外,开发者声称其网站上的速度提升了2倍。

使用适当的CDN

现在许多网页使用内容分发网络(CDN)。它可以改进你的缓存机制,因为每个人都可以使用它。它还能为你节省一些带宽。你很容易使用ping检测或 使用Firebug调试那些服务器,以便搞清可以从哪些方面加快数据的速度。选择CDN时,要照顾到你网站那些访客的位置。记得尽可能使用公共存储库。

面向jQuery的几个CDN方案:

◆  http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js——谷歌Ajax,关于更多库的信息请参阅http://code.google.com/apis/libraries/devguide.html#Libraries

◆  http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js——微软的CDN

•http://code.jquery.com/jquery-1.4.2.min.js——Edgecast (mt)。

网页末尾装入JavaScript

如果你关注用户,用户因互联网连接速度慢而没有离开你的网页,这是一个非常好的做法。易用性和用户放在首位,JavaScript放在末位。这也许 很痛苦,但是你应该有所准备,有些用户会禁用JavaScript。可以在头部分放置需要装入的一些JavaScript,但是前提是它以异步方式装入。

异步装入跟踪代码

这一点非常重要。我们大多数人使用谷歌分析工具(Google Analytics)来获得统计数据。这很好。现在看一下你把你的跟踪代码放在哪里。是放在头部分?还是说它使用document.write?然后,如 果你没有使用谷歌分析工具异步跟踪代码,那也只能怪你自己。

这就是谷歌分析工具异步跟踪代码的样子。我们必须承认,它使用DOM,而不是使用document.write,这可能更适合你。它可以在网页装入 之前检测到其中一些事件,这非常重要。现在想一想这种情况,你的网页甚至还没有装入,所有用户都关闭了网页。已找到了解决页面浏览量错失的办法。

  1. var _gaq = _gaq || []; 
  2.     _gaq.push(['_setAccount''UA-XXXXXXX-XX']); 
  3.     _gaq.push(['_trackPageview']); 
  4.     (function() { 
  5.         var ga = document.createElement('script'); ga.type = 'text/JavaScript'; ga.async = true
  6.         ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'
  7.         var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
  8.     })(); 

没有使用谷歌分析工具?这不是问题,今天的分析工具提供商大多允许你使用异步跟踪。

Ajax优化

Ajax请求对你网站的性能有重大影响。下面我介绍关于Ajax优化的几个要点。

缓存你的ajax

先看一下你的代码。你的ajax可以缓存吗?是的,它依赖数据,但是你的ajax请求大多应该可以缓存。在jQuery中,你的请求在默认情况下已被缓存,不包括script和jsonp数据类型。

针对Ajax请求使用GET

POST类型请求要发送两个TCP数据包(先发送标题,然后发送数据)。GET类型请求只需要发送一个数据包(这可能取决于你的cookie数量)。所以,当你的URL长度不到2K,你又想请求一些数据时,不妨使用GET。

使用ySlow

说到性能,ySlow既简单,又极其有效。它可以对你的网站进行评分,显示哪些方面需要改正,以及应关注哪些方面。

另外支一招:把你的JavaScript打包成PNG文件

设想一下:把你的JS和CSS添加到图片的末尾,然后用CSS来裁切,通过一次HTTP请求来获得应用程序中所需的所有信息。

我最近找到了这个方法。它基本上把你的JavaScript/css数据打包成PNG文件。之后,你可以拆包,只要使用画布API的 getImageData()。此外,它非常高效。你可以在不缩小数据的情况下,多压缩35%左右。而且是无损压缩!我得指出,对比较庞大的脚本来说,在 图片指向画布、读取像素的过程中,你会觉得有“一段”装入时间。

原文:http://www.1stwebdesigner.com/design/load-JavaScript-faster/

分享到:
评论

相关推荐

    JavaScript 的性能优化:加载和执行.docx

    JavaScript 是Web开发中不可或缺的一部分,尤其在Web2.0时代,JavaScript在客户端处理大量任务,因此它的性能优化至关重要。浏览器中的JavaScript执行具有阻塞特性,意味着在执行脚本时,浏览器无法进行其他操作,如...

    前端性能优化:掌握解决方案.zip

    首先,前端性能优化的基础在于理解网页加载流程。当用户访问一个页面时,浏览器会解析HTML文档,构建DOM树,然后根据CSS和JavaScript来渲染页面。优化此过程可以显著减少页面加载时间。 1. **懒加载**:对于非首屏...

    Javascript 性能优化的一点技巧

    本文将深入探讨一些JavaScript性能优化的方法,并提供实际应用场景,帮助开发者在日常工作中更好地实践这些优化策略。 #### 一、变量作用域与提升 **1.1 变量声明** - **作用**: JavaScript中的变量提升机制可以...

    JavaScript性能优化的小知识总结共23页.pdf

    JavaScript是Web开发中不可或缺的一部分,它为网页带来了交互性和动态性。然而,随着现代Web应用的...以上是JavaScript性能优化的一些关键点,实际应用中需要结合具体情况灵活运用,持续优化,以提供更好的用户体验。

    js性能优化 如何更快速加载你的JavaScript页面

    JavaScript现在极其重要。一些网站使用JavaScript来增添魅力;如今的许多Web应用程序依赖它;...我在本文中将指出一些重要的规则,介绍如何使用你的JavaScript、使用哪些工具以及你将从中得到什么好处

    移动APP H5前端性能优化指南.zip加载优化 图片优化 CSS优化 渲染优化

    移动APP的H5前端性能优化是提升用户体验的关键环节,它涉及到加载速度、图片显示、CSS渲染等多个方面。本文将深入探讨这些关键领域的优化策略。 首先,我们关注的是**加载优化**。加载速度直接影响用户对应用的第一...

    浏览器的加载与页面性能优化

    ### 浏览器的加载与页面性能优化:深入探索与实践 #### 一、网络层:DNS优化与CDN利用 浏览器性能优化的第一步往往发生在网络层,特别是DNS解析和内容分发网络(CDN)的高效利用。DNS解析延迟是网络请求中常见的...

    大型网站性能优化实战:从前端、网络、CDN到后端、大促的全链路性能优化详解.docx

    大型网站性能优化实战:从前端、网络、CDN 到后端、大促的全链路性能优化详解 本文档详细介绍了大型网站性能优化的重要性和价值,以及如何从前端、网络、CDN 到后端、大促等多个方面进行性能优化。性能优化是提高...

    Web 前端性能优化思路与学习方法

    - 采用异步加载的方式加载资源,如使用`async`或`defer`属性加载JavaScript文件。 - 实现按需加载,例如懒加载图片和组件。 - 使用Web Workers进行复杂的运算,避免阻塞主线程。 4. 浏览器渲染优化:提升浏览器...

    延迟加载js代码下载(包括页面延迟加载以及图片延迟加载)

    五、性能优化与注意事项 - 使用`Intersection Observer API`:这是一种现代的、性能更好的滚动检测方法,它减少了滚动事件的处理频率。 - 预加载策略:对于关键资源,可以考虑预加载,确保用户快速看到主要内容。 - ...

    页面加载中js 页面加载中js 页面加载中js

    在网页开发中,"页面加载中js"是一个关键的概念,涉及到用户体验和页面性能优化。页面加载过程中,JavaScript(js)的执行对用户感知的页面加载速度有着直接影响。在这个主题下,我们将深入探讨JavaScript如何影响...

    让你页面速度飞起来 Web前端性能优化(视频教程+ppt)

    ### Web前端性能优化知识点 #### 一、构建优化 **1.1 文件压缩与合并** - **文件压缩**:利用工具如UglifyJS、Terser等对JavaScript、CSS等静态资源进行压缩,减少文件体积,从而加快加载速度。 - **文件合并**:...

    极速加载:CSS性能优化全攻略

    ### 极速加载:CSS性能优化全攻略 随着互联网技术的发展和用户需求的不断提高,页面加载速度成为衡量网站质量的重要指标之一。CSS作为控制网页样式的关键技术,其性能的优化对于提升页面加载速度至关重要。本篇文章...

    高性能JavaScript PDF

    总的来说,"高性能JavaScript PDF"涵盖了如何利用JavaScript技术提高PDF文档的交互性和性能,这包括理解PDF的JavaScript支持、API使用、性能优化、安全实践等多个方面。通过深入学习和实践这些知识点,开发者能够...

    Java 大型网站性能优化实战从前端网络 CDN 到后端大促的全链路性能优化

    前端网络性能优化主要关注减少页面加载时间。CDN(Content Delivery Network)是一个关键的工具,它通过在全球部署多个节点,将静态资源如图片、CSS和JavaScript文件缓存到离用户最近的服务器上,从而减少网络延迟,...

    web前端性能优化

    优化措施包括压缩和合并JavaScript文件、使用非阻塞方式加载JavaScript文件、避免在文档加载完成后修改DOM过多等。此外,还可以采用JavaScript懒加载技术,将非核心脚本的加载推迟到用户需要时再执行,从而加快页面...

    javascript函数动态加载javascript文件

    总的来说,动态加载JavaScript文件是一个有效的优化策略,它可以帮助我们提升网页性能,减少首屏加载时间,提高用户体验。通过合理地使用`<script>`标签的特性,或借助`XMLHttpRequest`和`fetch` API,我们可以灵活...

    25-页面性能:如何系统地优化页面?_For_vip_user_0011

    页面性能优化是一个系统性的工程,需要我们从页面的生命周期开始,分析加载阶段、交互阶段和关闭阶段中影响页面性能的主要因素,并对这些因素进行详细的分析和优化。只有通过系统地优化页面性能,我们才能提高用户...

    网站性能优化1

    网站性能优化是提升用户体验、降低服务器负担的关键环节,尤其在当今互联网环境中,用户对网页加载速度有着极高的期待。本文将深入探讨网站性能优化的方案和原理,主要围绕"高性能网站建设指南(上1).pdf"这份资料...

Global site tag (gtag.js) - Google Analytics