---------------
木鱼说
---------------
我只把有关例子的句子或改编了下:)
---------------
正文
---------------
Tip 1: Cache your objects!
for (i=0;i<document.images.length;i++)
document.images[i].src="blank.gif"
对象“document.images”被多次访问。由于浏览器必须在每次循环寻找“document.images”两次,实现的代码性能不高。如果页面上有10个图片,Images对象将被调用20次。过度访问JavaScript对象会影响浏览器性能,更不要提计算机内存了。
"cache your object"意味着,把需要重复访问的对象存储在一个用户定义的变量,供以后使用。性能提升会非常明显。下面是修改后的版本:
var theimages=document.images
for (i=0;i<theimages.length;i++)
theimages[i].src="blank.gif"
document.images[]引用的次数不仅仅减少一半,每次引用,浏览器就不必首先遍历document.images,而是径直访问容器数组。
在调用高度嵌套的DHTML对象时,记得使用这个技巧呀!比如document.all.myobject, 或 document.layers.firstlayer等。
有很多这样的例子,请看prototype.js中的用法:
for (var i = 0, length = properties.length; i < length; i++) {
//code here
}
for (var i = 0, length = arguments.length; i < length; i++) {
var lambda = arguments[i];
try {
returnValue = lambda();
break;
} catch (e) { }
}
for (var i = 0, length = this.length; i < length; i++)
iterator(this[i]);
for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
for (var i = 0, length = arguments.length; i < length; i++) {
if (Object.isArray(arguments[i])) {
for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
array.push(arguments[i][j]);
} else {
array.push(arguments[i]);
}
}
Tip 2: Cache your scripts!
把js代码放到文件里。
<script type="text/javascript" src="imagescript.js"></script>
在yahoo的如何建设高性能网站博客里也提到了这一点,请参看http://developer.yahoo.com/performance/rules.html
Tip 3: Understand the cost of your objects
事实上,一些JavaScript对象很少宽容浏览器。请看下面的例子:
-object.innerText //IE only
-object.innerHTML
你知道第二个属性比第一个要求更多的系统资源调用次数吗?如果你刚好在IE里、刚好要改变某个<div>或<span>里的文本内容,innerText将是非常高效的选择。另一个例子就是CSS属性“display”和“visibility”;前者明显比后者开销大。
---------------
参考文章
---------------
http://www.javascriptkit.com/javatutors/efficientjs.shtml
该网站有很多实用、短小的文章,非常不错!
分享到:
相关推荐
在浏览器中的JavaScript性能无疑是开发者面临的关键可用性问题。由于JavaScript的阻塞性质,在执行JavaScript代码时,其他任何操作都无法进行。实际上,大多数浏览器都使用单一进程来处理用户界面(UI)更新和...
### 高性能JavaScript知识点概述 #### 一、加载与执行(Loading and Execution) **核心概念:** - **JavaScript执行机制**:浏览器中的JavaScript执行过程及其对网页渲染的影响。 - **单进程模型**:大多数现代...
总而言之,"javascript中文三个好文档"涵盖了JavaScript的基础到进阶的知识点,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。通过深入研读并实践这些文档中的内容,你将能够更好地驾驭JavaScript,提升...
通过这个"300个JavaScript的小例子",你可以逐步探索以上知识点,并通过实践加深理解。每个例子都是一个独立的练习,旨在帮助你将理论知识转化为实际技能。无论是初学者还是有经验的开发者,这个资源都能提供宝贵的...
- **作用域管理**:合理的管理变量的作用域对于提高JavaScript性能至关重要。 - **作用域链与标识符解析**:深入理解JavaScript中的作用域链和标识符解析机制可以帮助开发者编写更高效的代码。 - **减少全局变量的...
在理解JavaScript三维饼图前,首先需要了解JavaScript的基础知识。JavaScript是一种脚本语言,广泛用于网页交互和动态内容的生成。它在浏览器环境中运行,可以操作DOM(文档对象模型)来改变HTML元素,以及通过AJAX...
1. JavaScript性能优化的重要性:文件提到高性能JavaScript对于开发者而言是极其重要的,因为它关乎到浏览器端的用户体验。性能问题之所以重要,是因为JavaScript的执行具有阻塞性质,即在JavaScript代码执行期间,...
要实现JavaScript三级联动菜单,我们需要掌握以下几个关键知识点: 1. HTML基础结构:首先,我们需要创建HTML来定义菜单的基本结构,通常包括`<ul>`和`<li>`元素来构建层级关系。例如,一级菜单是顶级`<ul>`,二级...
《Effective JavaScript:编写高质量JavaScript代码的68个有效方法》是David Herman撰写的一本JavaScript编程指南,该书基于作者在Ecma的JavaScript标准化委员会的工作经验,深入探讨了JavaScript的内部工作机制、...
- 事件委托:利用事件冒泡机制,将事件监听器添加到父元素,提高性能。 - 异步控制流:利用回调、Promise和async/await处理异步操作。 3. **JavaScript异步编程**: 异步编程是JavaScript的重要特性,用于处理...
JavaScript内核系列是一份深入探讨JavaScript编程语言及其内核的宝贵资源,对于正在学习或从事JavaScript开发的学生和程序员来说,它提供了丰富的知识和技术指导。这份资料详细阐述了JavaScript的各个方面,包括语法...
这个3000个JavaScript代码集合涵盖了JavaScript的各个方面,旨在提供一个全面的学习和参考资料库。 一、JavaScript基础 这个集合中可能包括了JavaScript的基础语法,如变量声明(var, let, const)、数据类型(字符...
针对JavaScript提高性能的知识点可以分为多个方面,下面将一一进行阐述。 一、js文件的加载位置 在HTML文件中,script标签通常可以放置在head区域或body区域。由于JavaScript的执行会阻塞浏览器的UI渲染,所以如果...
以上资料提供了丰富的JavaScript编程知识,涵盖了从基础知识到高级技术的多个方面,对于希望深入学习JavaScript的开发者来说是非常宝贵的资源。通过这些书籍的学习,可以全面掌握JavaScript的各种特性和编程技巧,...
4. **你可能不知道的10个JavaScript小技巧** - **核心知识点**: - 不常用但实用的功能(如Array.from、Object.assign等)。 - 提高代码可读性的编码习惯。 - 编写简洁高效的函数式代码技巧。 #### 三、...
ppk的书籍通常会涵盖JavaScript的基础知识,以及如何处理浏览器差异,这对于前端开发者来说是非常有价值的资源。 “JavaScript语言精粹(修订版)”可能是Douglas Crockford的著作,他是一位JavaScript的先驱者,对...
优化JavaScript特效的性能至关重要。避免全局查找,使用局部变量;减少DOM操作,批量处理;合理使用事件委托;以及适时使用requestAnimationFrame等技巧,都能提高特效的流畅度和用户体验。 综上所述,JavaScript...