`

性能优化:如何更快速加载你的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/

分享到:
评论

相关推荐

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

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

    前端性能优化知识图谱指导

    JS性能优化是指在JavaScript代码的编写和执行过程中,通过一系列的优化策略和技术手段,提高代码的执行效率和性能,从而提升网页或应用程序的响应速度和用户体验。 优化JS性能的方法包括但不限于以下几个方面: 代码...

    性能优化之代码优化页面加载速度

    页面代码的优化对于页面加载速度也有不小的影响,最广为人知的: HTML头部的JavaScript和写在HTML标签中的Style会阻塞页面的渲染,因此CSS放在页面头部并使用Link方式引入,JavaScript的引入放在页面尾。 其次还有:...

    前端学习,从入门到精通,进阶好教程

    网页性能优化:学习如何优化网页性能,例如减少页面加载时间、优化图片、利用CDN等技术。 移动端开发:学习移动端开发技术,例如响应式布局、移动端框架等。 前端自动化:学习前端自动化工具和流程,例如Grunt、Gulp...

    JavaScript提高网站性能优化的建议(二)

    在javascript关于提高网站性能的几点建议(一)中,从...当执行一段JavaScript代码(全局代码或函数)时,JavaScript引擎会创建为其创建一个作用域又称为执行上下文(Execution Context),在页面加载后会首先创建一个全

    JavaScript性能优化总结之加载与执行

    浏览器在下载和执行脚本时出现阻塞的原因在于,脚本可能会改变页面或 JavaScript 的命名空间,它们对后面页面内容造成影响。一个典型的例子就是在页面中使用[removed](),例如清单 1 清单 1 JavaScript 代码内嵌示例...

    仿魅族官网完整源码(html+cssl+JavaScript)

    项目介绍:仿魅族官网是一个使用HTML、CSS和JavaScript开发的网页项目。...包括首页、登录、注册、购物车、商品列表、商品详情等多个页面,实现了精准还原... 对页面进行优化和性能调优,提高页面加载速度和用户体验。

    WP Rocket v3.7 WordPress缓存插件+预加载链接

    新功能:延迟 JavaScript 执行-通过延迟 JavaScript 文件的加载直到用户交互(例如,滚动,单击)来提高性能 新功能:预加载链接-在用户单击链接之前预取页面,以提高感知的加载速度和用户体验) 增强功能:启用...

    JavaScript中的无阻塞加载性能优化方案

    Javascript在浏览器中的性能,可以说是前端开发者所要面对的最重要的可用性问题。 在Yahoo的Yslow23条规则当中,其中一条是将JS放在底部 。原因是,事实上,大多数浏览器使用单进程处理UI和更新Javascript运行等多个...

    requirejs:JavaScript的文件和模块加载器

    优化工具可以合并和最小化JavaScript文件,以实现更好的性能。 如果JavaScript文件通过定义了JavaScript模块,那么RequireJS还可以提供其他好处:以及在页面中。 RequireJS还具有一个插件系统,该系统支持诸如和。 ...

    前端开发的基本流程-概念

    交互效果实现:使用JavaScript等技术为页面添加交互效果,如轮播图、表单验证、动态数据加载等。同时,需要确保交互效果符合设计稿的要求,并且具备良好的用户体验。 接口对接与数据渲染:与后端开发人员协作,...

    前端面试最新最全面经(带个人笔记)

    包含Vue源码手写题 、JavaScript手写代码 、 ES6 、页面布局 、计算机网络 、浏览器原理、性能优化等面经真题。包含近几年高频前端开发工程师面试题,每个题目都有详细答案和个人笔记。1.JavaScript章节包括:基础...

    JavaScript异步加载浅析

    深入理解脚本加载相关的方方面面问题,不仅利于解决实际问题,更加利于对性能优化的把握并执行。   先看随便一个script标签代码—— 代码如下: [removed][removed] 如果放在<head>上面,会阻塞所有页面...

    High Performance JavaScript(高性能JavaScript)读书笔记分析

    第一章:加载和执行 浏览器的JavaScript的引擎是编译器层的优化; 当浏览器执行JavaScript代码时,不能同时做其他任何事情(单一进程),意味着[removed]标签每次出现都霸道地让页面等带脚本的解析和执行(每个文件...

    来自国外的页面JavaScript文件优化

    外部JavaScript文件块下载和伤害你的页面的性能,但有一个简单的方法来解决此问题:并行使用动态脚本标记和加载脚本,提高页面加载速度和用户体验。

    js:这个该死的javascript

    如果您进行编辑,则页面将重新加载。 您还将在控制台中看到任何棉绒错误。npm test 在交互式监视模式下启动测试运行器。 有关更多信息,请参见关于的部分。npm run build 构建生产到应用程序build文件夹。 它在生产...

    LumiaGuide:开源REACT应用,用于永恒回报中的路径优化:黑色生存

    如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。 npm test 在交互式监视模式下启动测试运行程序。 有关更多信息,请参见关于的部分。 npm run build 构建生产到应用程序build文件夹。 它在...

    lei-optimizing-performance:网站性能优化

    网站性能优化组合项目通过应用[关键渲染路径课程]( ) 中的技术,优化现有在线作品集的关键渲染路径,使 Pagespeed Insights 得分高于 90。以下技术用于优化网站: 图像被压缩向 js 源添加 async 标签以避免渲染阻塞...

    JavaScript优化专题之Loading and Execution加载和运行

    JavaScript 在浏览器中的性能,可认为是开发者所要面对的最重要的可用性问题。此问题因JavaScript的阻塞特征而复杂,也就是说,当JavaScript 运行时其他的事情不能被浏览器处理。事实上,大多数浏览器使用单进程处理...

    pokedex-react-final:不重新加载

    如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。npm test 在交互式监视模式下启动测试运行程序。 有关更多信息,请参见关于的部分。npm run build 构建生产到应用程序build文件夹。 它在生产...

Global site tag (gtag.js) - Google Analytics