WEB开发网
开发学院网页设计JavaScript 如何提升JavaScript函数的运行速度 阅读

如何提升JavaScript函数的运行速度

 2010-09-14 13:48:04 来源:WEB开发网   
核心提示:Nicholas为您讲解如何提升JavaScript函数的运行速度!这篇是Nicholas讨论如果防止脚本失控的第二篇,主要讨论了如何重构嵌套循 环、递归,如何提升JavaScript函数的运行速度,以及那些在函数内部同时执行很多子操作的函数,基本的思想和上一节trunk()那个例子一致,我们没有必要使用这种方式进行排

Nicholas为您讲解如何提升JavaScript函数的运行速度!

这篇是Nicholas讨论如果防止脚本失控的第二篇,主要讨论了如何重构嵌套循 环、递归,以及那些在函数内部同时执行很多子操作的函数。基本的思想和上一节trunk()那个例子一致,如果几个操作没有特定的执行顺序,而且互相不是依赖关系,我们就可以通过异步调用的方式加以执行,不止可以减少执行的次数,还可以防止脚本失控。本文还介绍了通过memoization技术取代递归的 方法。

【原文标题】Speed up your JavaScript, Part 2

【原文作者】Nicholas C. Zakas

上周我在《too much happening in a loop》(译文)这篇文章中介绍了JavaScript运行时间过长的第一个原因。相似的情况有时也出现在函数的定义上,函数也可能因为使用不当而过载使用。通常情况是函数内包含了过多的循环(不是在循环中执行了过多的内容),太多的递归,或者只不过是太多不相干但又要一起执行的操作。

太 多的循环经常是以嵌套的形式出现,这种代码会一直占用JavaScript引擎直至循环结束。这方面有一个非常著名的例子,就是使用冒泡算法排序。由于 JavaScript有内置的sort()方法,我们没有必要使用这种方式进行排序,但我们可以借助这个算法理解嵌套循环占用资源的症结所在,从而避免类 似情况的发生。下面是一个在JavaScript使用冒泡排序法的典型例子:

function bubbleSort(items) {
for (var i = items.length - 1; i >= 0; i--) {
for (var j = i; j >= 0; j--) {
if (items[j] < items[j - 1]) {
var temp = items[j];
items[j] = items[j - 1];
items[j - 1] = temp;
}
}
}
}

1 2 3 4  下一页

Tags:如何 提升 JavaScript

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接