1,总是从ID选择器开始继承 在jQuery中最快的选择器是ID选择器,因为它直接来自于JavaScript的getElementById()方法。 例如有一段HTML代码: 代码如下: 如果采用下面的选择器,那么效率是低效的。 var traffic_button = $("#content .button"); 因为button已经有ID了,我们可以直接使用ID选择器。如下所示: var traffic_button = $("#traffic_button"); 当然 这只是对于单一的元素来讲。如果你需要选择多个元素,这必然会涉及到...
代码如下: appendChild,innerHTML,join //使用appendChild()方法添加span标签 function AppendDiv() { var times=parseInt(document.getElementById('tbTimes').value); var oDiv=document.getElementById('div1'); var Text=document.getElementById('tbText').value; var Time=new Date(); var StartTime=Time.getTime(); for(var i=1;i{ var span=document.createElement('span'); span.appendChild(document.createTextNode(...
最近遇到js的效率问题,是关于在页面中新增元素的问题。 假设我们有页面如下: 代码如下: // 脚本位置 现在,我们要往div1中添加对象,大家都知道在为web页面增加一个元素时可以使用如下代码: //方法1 div1.innerHTML = '测试'; 或者: //方法2 var a = document.createElement('a'); a.innertText = '测试'; div1.appendChild(a); 在网上搜索到一个探讨js效率问题的文章,其大概意思是说方法2的效率高,其对比代码如下...
尤其是JavaScript 文件,在下载它时,并行下载实际上是被禁用的,并且还会阻塞页面的呈现! 关于JavaScript 的下载 在下载JavaScript 脚本文件时,浏览器不会并行启动其它下载,而是让JavaScript 脚本文件单独下载完毕后,再继续其它请求。这将对页面的整体性能是一个很大的问题,解决方案如下: 解决方案1:将JavaScript 脚本内联在页面中,即直接将JavaScript 脚本写在HTML标签中。 优点:速度最快。在大型网站的首页中,可以合理...
代码如下: var oldtime = new Date().getTime(); var str = []; for(i=0;i<100000;i++) { str.push(abcabcabcabcabcabcabcabcabcabcabcabc); } var newtime = new Date().getTime(); var joinTime = (newtime - oldtime); var oldtime = new Date().getTime(); var str=; for(i=0;i<100000;i++) { str += abcabcabcabcabcabcabcabcabcabcabcabc; } var newtime = new Date().getTime(); var concatTime = (newtime - oldtime); ale...
解析时用到的方法一般是eval或者new function,而目前IE8和Firefox3.1又内置了原生的JSON对象(据说会有一定的性能提升)。那我们在实际使用的时候怎样从这三种方法(因为性能问题,不考虑用javascript实现的解析)里面来选择呢?面对众多的浏览器,哪种方式的性能是最好的呢? 一、测试方法 1、首先指定测试次数及JSON字符串 代码如下: var count = 10000, o = null, i = 0, jsonString = {"value":{"items": [{"x":1,"y":2,"z":...
在选择时,最好以ID选择符作为开头 我想这个很好理解,因为JQuery内部使用document.getElementByID方法进行ID选择,这种方法比其他所有对DOM选择的方法更快,所以以$("#")开头是最好的,比如: 代码如下: $(".b .c .d")//slow one $("#a .b .c .d")//fast one 提供$()的上下文 在使用$()选择页面元素时,提供选择的范围可以减少选择的时间,换句话说,让选择器只在页面的一小片范围内筛选而不是整个页面当然会减少筛选时间...
一. 三种数组复制方法 1. by slice var arr = [1, 2, 3], copyArr; copyArr = arr.slice(); 2. by concat var arr = [1, 2, 3], copyArr; copyArr = arr.concat(); 3. by loop var arr = [1, 2, 3], copyArr = []; for (var i=0, j=arr.length; i 二. 测试环境 浏览器: IE6+, FF 3.5.5, Opera 10, Chrome 4.0.249, Safari 4.0.3 三. 测试用例 用上面3种方法, 对一个拥有500000项的数组进行复制操作, 然后对比3种方法所耗掉的时间. ...
一般在javascript里对数组进行遍历一般是使用for循环,像下面一样 代码如下: var arr = []; for(var i=0; i//loop } 这种代码最大的问题,就在于每次循环时都要通过 .操作符获取 .length,增加了开销。那么我们可以这样改进。 代码如下: var arr = []; for(var i=0, n=arr.length; i<n; i++){ //loop } 这样子,先把 arr.length暂存到 n 变量中去。只在开始时获取一次。 但是这样就没问题了吗?貌似多定义了个无意义的变量 n 。...
在twitter上发现了这篇文章, 简单的摘译了一下:总是从ID选择器开始继承 在class前使用tag 将jquery对象缓存起来 掌握强大的链式操作 使用子查询 对直接的DOM操作进行限制 冒泡 消除无效查询 推迟到 $(window).load 压缩js 全面掌握jquery库 1. 总是从ID选择器开始继承 在jquery中最快的选择器是ID选择器. 因为它直接来自于Javascript的getElementById()方法. 代码如下: 像这样选择按钮是低效的: 代码如下: var traffic_butto...
性能方面:看下图 jquery 1.42最新版框架下载你也可以直接在网页中引入: http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js 新增方法: .delegate( selector, eventType, handler ) 这个函数的确很有用。用于给指定的对象附加一个事件监听。 selector:选择器 eventType:事件类型 handler:监听函数 Delegate这个方法用于替代1.3.2中的.live()方法。...
一旦您下载 并安装了DAE (dynaTrace Ajax Edition), 您必须进入开始菜单里面的程序组,找到dynaTrace。很明显,首先要做的是录入一个url链接,接下来,点击播放图标的按钮,选择“New Run Configuration”,录入一个新的URL. DAE的特点之一是它可以运行在多页面的工作流之下,你可以输入起始网址,然后导航到其他网页或启动Ajax特性,而DAE在后台监视一切。当您关闭IE浏览器时,您就可以分析所有DAE收集的信息了. DAE区别于其它工...
脚本可以放在html页面的head里面,也可以放在body里面。 把脚本放在body中,当浏览器遇见标签时, 浏览器不知道脚本会插入文本还是html标签,因此浏览器会停止分析html页面而去执行脚本。当使用src的方式添加脚本时,浏览器也会做同样的动作。在脚本处理的时候,页面呈现和用户交互将被完全阻止。脚本下载和执行阻塞了其他资源的下载,比如呈现页面使用的图片。(虽然很多浏览器实现了脚本并行下载的技术,但是这个问题依然没有解决...
外部JS的阻塞下载 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等。至到JS下载、解析、执行完毕后才开始继续并行下载其他资源并呈现内容。 有人会问:为什么JS不能像CSS、image一样并行下载了?这里需要简单介绍一下浏览器构造页面的原理, 当浏览器从服务器接收到了HTML文档,并把HTML在内存中转换成DOM树,在转换的过程中如果发现某个节点(node)上引用了CSS或者IMAGE,就会再发1个request去...
一般我们启动gzip都比较少对html启动gzip,因为现在的html都是动态的,不会使用浏览器缓存,而启用gzip的话每次请求都需要压缩,会比较消耗服务器资源,对js,css启动gzip比较好是因为js,css都会使用缓存。我个人觉得的压缩html的最大好处就是一本万利,只要写好了一次,以后所有程序都可以使用,不会增加任何额外的开发工作。 在“JS、CSS的合并、压缩、缓存管理”一文中说到自己写过的1个自动合并、压缩JS,CSS,并添加版本号的组件...