js优化总结】的更多相关文章

项目发布前,require.js优化器可以合并require.js各个模块. 官网: http://requirejs.org/docs/optimization.html 安装 npm install -g requirejs 1.从C:\Users\Administrator\AppData\Roaming\npm\node_modules\requirejs\bin复制出r.js到工程下 2.当前目录下新建文件bulit.js ({ baseUrl: "./test/js", n…
css优化: 1.css代码的压缩. 2.css文件的合并. 3.不滥用float,因为float在渲染时计算量比较大,所以尽量减少使用float. 4.避免在html标签中写style属性. js优化 1.尽量避免使用全局变量. 2.定时器你选择使用setInterval,而不是setTimeout.setTimeout每一次都会初始化一个定时器,而,setInterval只在开始时初始化一个定时器. 3.js代码尽量放在后面(最好是放在标签</body>前),这样会减低因加载js代码而影响…
首先,与其他语言不同,JS的效率很大程度是取决于JS engine的效率.除了引擎实现的优劣外,引擎自己也会为一些特殊的代码模式采取一些优化的策略.例如FF.Opera和Safari的JS引擎,都对字符串的拼接运算(+)做了特别优化.显然,要获得最大效率,就必须要了解引擎的脾气,尽量迎合引擎的口味.所以对于不同的引擎,所作的优化极有可能是背道而驰的. 而如果做跨浏览器的web编程,则最大的问题是在于IE6(JScript 5.6)!因为在不打hotfix的情况下,JScript引擎的垃圾回收的b…
来自知乎的问题:JavaScript 怎样高效拼接字符串? 请把以下用于连接字符串的JavaScript代码修改为更高效的方式: var htmlString ='< div class=”container” > ' + '< ul id=”news-list” > '; for (var i = 0; i < NEWS.length; i++) { htmlString += '< li > < a href="' +NEWS[i].LINK…
最近在读<高性能javascript>,在这里记录一下读后的一些感受,顺便加上自己的一些理解,如果有兴趣的话可以关注的我的博客http://www.bloggeng.com/,我会不定期发布一些前端教程还有前端干货,话不多说,进入我们的正题 一.js优化之加载 1.script标签放在底部,不要放在head标签: 2.尽量减少js文件数量 3.给script标签添加一个defer属性,defer属性指明所含的脚本不会修改DOM,因此代码能安全地延迟执行. <script type=&qu…
注意啦,前端初学者适合看的js优化,当你看我的优化认为太low,那么恭喜,你已经脱离初学者了. 首先这边我觉得分享的还是以js为主,前端性能优化,我认为最重要的还是js,因为js是一门解释型的语言,相比于编译型语言,执行速度慢得多.木桶效应,js就是那块最短的木板.接下来进入正题,刚进入前端的同学,能做哪些性能优化的方面呢? 1.使用jq代替原生js 其实上家公司我一直秉持着,原生的js好!为什么呢?因为我不会jq....但是来到现在的公司后,发现使用原生的js会被人排挤啊-你想问个问题,人家原…
最近在读<高性能javascript>,在这里记录一下读后的一些感受,顺便加上自己的一些理解,如果有兴趣的话可以关注的我的博客http://www.bloggeng.com/,我会不定期发布一些前端教程还有前端干货,话不多说,进入我们的正题 一.js优化之加载 1.script标签放在底部,不要放在head标签: 2.尽量减少js文件数量 3.给script标签添加一个defer属性,defer属性指明所含的脚本不会修改DOM,因此代码能安全地延迟执行. <script type=&qu…
JavaScript性能优化篇js优化   随着Ajax越来越普遍,Ajax引用的规模越来越大,Javascript代码的性能越来越显得重要,我想这就是一个很典型的例子,上面那段代码因为会被频繁使用,所以才有了此优化的过程,我在本文中将指出一些重要的规则,介绍如何使用你的JavaScript.使用哪些工具以及你将从中得到什么好处. 确保代码尽量简洁 不要什么都依赖JavaScript.不要编写重复性的脚本.要把JavaScript当作糖果工具,只是起到美化作用.别给你的网站添加大量的JavaSc…
原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随笔: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对象之间的赋值,for...in语句,delete使用,成员方法,json对象的使用,prototype的使…
频繁地对于DOM进行操作的很是损耗性能,但在富网页应用中我们编写脚本无可避免地要跟DOM打交道,到底怎么才能优化这个性能瓶颈呢,大致从以下三种情况去考虑: 访问和修改DOM元素 修改DOM样式,会造成页面的重绘和重新排版 通过DOM事件处理程序来响应用户   访问和修改DOM元素 在浏览器中,DOM的实现和Javascript的实现通常是保持相互独立的.下面了解一下主流浏览器的渲染引擎和JS引擎: 浏览器 渲染引擎(内核) JS引擎 IE mshtml.dll(Trident) JScript…
我知道国内很多网页制作人员都还在制作table式网页,这样的网页打开速度很慢.如果要想网站打开速度快,就要学会使用DIV+CSS,将图片写进CSS,这样如果网站内容很多的时候,也不会影响网页的浏览.它会先显示文字,在你一边浏览的时候,它就一边加载网页的图片.但是很多初学者写的CSS就是代码不够简洁,很多地方重复多余. 现在,我就教大家如何优化CSS,压缩CSS的大小,使网页加载速度更快. 要优化你网站的CSS,首先第一步就是要将你的多个CSS文件合并,这样减少一个CSS文件你的网页速度就会快上一…
r.js主要功能:优化项目的静态资源.可以简化压缩代码,减少体积.指定模块将多个组件合并为一个文件,减少HTTP请求数量.具体使用步骤如下: 先把 r.js 文件放到项目根目录,再于项目根目录内新建一个 build.js 文件. 一.编写build.js(用独立文件的形式保存压缩命令的相关参数)如: ({ appDir:'./', //将要被优化处理的目录(一般是项目根目录),该目录下的所有文件都会被优化并复制到dir指定的输出目录中,相对build.js文件的路径 dir: '../app-b…
避免全局查找 在一个函数中会用到全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度要比访问全局变量的速度更快些 function search() {    //当我要使用当前页面地址和主机域名    alert(window.location.href + window.location.host); } //最好的方式是如下这样  先用一个简单变量保存起来 function search() {    var location = window.location;    alert…
这段代码是撸主刚毕业那会写的,主要是实现一个左侧的导航条的折叠功能.当时实现的比较简陋,每次在导航条增加新的项目的时候,都要手动去修改js代码中写死的索引...确实是比较恼火的,后来就修改了一下,能够自动的查找索引了,但是写的代码很不规范,前几天看到这段代码的时候,简直要吐血...所以就简单优化了一下 1.情景描述: html代码大致就是如下所示: <a><li></li></a> <li></li> <li></l…
JS代码的执行效率往往直接影响了页面的性能,有的时候,实现同样的功能,不同的JS代码往往在效率上相 差很多,有的时候仅仅是由于我们的书写习惯导致的,当然在高级点的浏览器中,它们大多都已经帮我们优化了,但是在中国,万恶的IE6仍然大量的存在,我们 不得不去考虑它.对于JS代码的优化,实际上有很多的情况,有些影响是比较小的,而有些是比较严重的,本文中,我把几个我认为影响比较严重的情况列出来, 供大家参考. 1.字符串的拼接 字符串的拼接在我们开发中会经常遇到,所以我把其放在首位,我们往往习惯的直接用…
一.for循环的优化 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> window.onload=function(){ var obj=[12,34,56,67,123,23…
一.给JS文件减肥. 有的人为了给网站增加炫目效果,往往会使用一些JS效果代码,这在上个世纪似乎还很流行,对于现在来说,最好在用户体验确实需要的情况下,使用这些东西.至于希望给自己的JS文件减肥的童鞋,网上的工具里有很多,在百度一搜就会有应用,功能很全.把一个已经完善的JS文件进行压缩是主流网站的一个惯性动作,因为压缩量确实很可观.以下是几个比较好的压缩工具: YUI压缩工具 (http://developer.yahoo.com/yui/compressor/)Dean Edwards Pac…
说到有序加载,我们先来说说js的无序加载: <script src="jquery/jquery-1.4.1.js" type="text/javascript"></script> <script type="text/javascript"> window.onload = function () { $("#head").append("<script src='js/…
一开始为以为Javascript脚本尽量放到页面底部加载,是指所有的JS脚本都要放到底部,后来才发现, 并不完全是这样,这里所指的脚本是指那些在加载过程中要执行的脚本,所以一般的处理办法还是页面头部引入JS链接,页面底部执行JS脚本程序.为什么要这么做呢?呵呵,其实很简单,为了实现最大的下载并行,页面加载初期做的事,最好只有下载,HTML的下载,CSS的下载,JS的下载,等下载完成后再去实现页面渲染,JS脚本运行.这个方面我们还需要努力,很多页面我们在加载过程中运行了一部分脚本,或许是为了实现一…
[本文出自天外归云的博客园] 最近在做一个JIRA信息统计的系统,在统计JIRA关联信息的过程中由于需要等待ajax返回结果到前端,时间较长,所以要添加一段等待时的loading画面,使用spin.js实现效果如下: 使用方法: 1. 在js函数中准备弹出loading效果的地方加上如下代码,弹出loading画面,以下为“调用代码”: bootbox.dialog({ message:'<div style="text-align:center;height:150px;padding-…
barba.js 原理就是在a页面中显示b页面的内容,样式为刷新,给用户以页面跳转后无刷新体验,注意样式命名,ab页面引用的样式和js要相同 可以在页面之间创建良好的转换,增强用户的体验. 减少HTTP请求 (为什么重新加载每个页面上的css / js?) 可以使用预取和缓存来加快导航 a.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name=&qu…
由于上篇篇幅过长,导致编辑出了问题,另开一篇文章继续: (4)减少迭代次数,最广为人知的一种限制循环迭代次数的模式被称为“达夫设备(Duff`s Device)” Duff`s Device的理念是:每次循环最多可以调用8次process().循环的迭代次数为总数除以8,由于不是所有数字都能被8整除,变量startAt用来存放余数,表示第一次循环应该循环多少次.假设总次数为12,则余数为4,代表第一次循环会调用4次process(),第二次循环startAt至为0,循环8次,这样就用两次循环代替…
防抖debounce装饰器 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时. function debounce(func, delay) { let isCooldown = false; return function() { if (isCooldown) return; func.apply(this, arguments); isCooldown = true; setTimeout(() => isCooldown = false, delay); }; } 节流t…
HTML部分 语义化HTML:好处在于可以使代码简洁清晰,支持不同设备,利于搜索引擎,便于团队开发: 减少DOM节点:加速页面渲染: 给图片加上正确的宽高值:这可以减少页面重绘,同时防止图片缩放: 防止src属性和link的href属性为空:当值为空时,浏览器很可能会把当前页面当成其属性值加载: 正确的闭合标签:如避免使用<div/>,浏览器会多一个将它解析成<div\></div\>的过程: 链接为目录或首页的地址后面加”/”,如http://www.qq.com/:…
1.使用尽可能少的全局变量.尽量用var来声明变量,避免隐式使用全局变量. 隐式全局变量和明确定义的全局变量间有些小的差异,就是通过delete操作符让变量未定义的能力. 通过var创建的全局变量(任何函数之外的程序中创建)是不能被删除的. 无var创建的隐式全局变量(无视是否在函数中创建)是能被删除的 这表明,在技术上,隐式全局变量并不是真正的全局变量,但它们是全局对象的属性.属性是可以通过delete操作符删除的,而变量是不能的: 2.避免var散布,一般都在头部. 3.for循环中将长度保…
前言 在使用 JavaScript 的时候,有时我们会处理大量条件语句,这里有5个技巧帮助我们编写更简洁的条件语句. 一.对多个条件使用 Array.includes 例子: function condition(fruit) { if (fruit == 'apple' || fruit == 'banana') { console.log(fruit); } } 上面的例子看起来不错,但如果有更多水果需要判断呢,比如桃子.草莓.橙子等等,我们要用更多的 || 来扩展这个表述吗? 我们可以使用…
require.config({ paths: { "jquery": "jquery-3.2.1", 'index':"index" }}); require(["jquery",'index'],function () {return true;});…
JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. 不仅如此,JavaScript还是很多新手踏入编程世界的第一个语言.既可以用来显示浏览器中的简单提示框,也可以通过nodebot或nodruino来控制机器人.能够编写结构清晰.性能高效的JavaScript代码的开发人员,现…
r.js是requireJS的优化(Optimizer)工具,可以实现前端文件的压缩与合并,在requireJS异步按需加载的基础上进一步提供前端优化,减小前端文件大小.减少对服务器的文件请求.要使用r.js需下载r.js文件(点我下载),将其放到你的项目根目录:还需要安装nodeJS(点我下载),以便通过命令行来执行r.js功能.我们将拿一个小案例来详细说明使用r.js的方法(你可以点此下载这个案例). 如下图所示的项目(见案例中的before文件夹)仅仅使用了requireJS,但还未使用过…
转自http://www.cnblogs.com/koking/archive/2011/10/17/2215665.html 折腾了好几天,纠结了好几天,郁闷了好几天,终于在今天可以释怀了,留下其中的苦乐辛酸来和大家分享. 事情是这样子的,上周接到一个需求,其中涉及到一个好友选择的组件,就是单机左侧某个群组下的好友后该好友移动到右侧,视为选择了它,另外每个群组还有全选,折叠和展开等功能.组件在开发过程中,遇到了在2000条数据的时候,搜索会变的很卡,IE8下为2s左右,IE6更长,我在最初的优…