摘要:
Nicholas为您讲解如何提升JavaScript的递归效率! 影响JavaScript性能的另外一个杀手就是递归,在上一节中提到采用 memoization技术可以优化计算数值的递归函数,但memoization不是万能的,不是所有的递归函数都可以用memoization技术优 化,本文介绍了这些情况,并介绍了解决办法,就是将递归转换为迭代,同时需要注意,本文末尾介绍的方案不是最终的方案,还需要和上一节优化循环的方案综合 起来才能达到最佳效果。 【原文】Speed up your JavaScript, Part 3 【作者】Nicholas C. Zakas 【译者】明达 以... 阅读全文
摘要:
Nicholas为您讲解如何提升JavaScript循环的运行速度! 根 据Nicholas的说法,有四种代码会拖慢脚本的运行,并最终导致脚本失控。分别是次数过多的同步循环、庞大的函数体、不恰当的递归和不合理的DOM调用。这篇着重讲第一个原因。最后给出了一个开发模式,替换传统的循环结构,可以完全避免脚本失控的状况发生。 【原文标题】Speed up your JavaScript, Part 1 【原文作者】Nicholas C. Zakas 在我上一篇帖子 (译文 ) 中,谈到了各个浏览器究竟会在什么情况下弹出脚本失控提示,对于Internet Explorer来说,当浏览器执... 阅读全文
摘要:
Nicholas为您讲解如何提升JavaScript函数的运行速度! 这 篇是Nicholas讨论如果防止脚本失控的第二篇,主要讨论了如何重构嵌套循 环、递归,以及那些在函数内部同时执行很多子操作的函数。基本的思想和上一节trunk()那个例子一致,如果几个操作没有特定的执行顺序,而且互相不是 依赖关系,我们就可以通过异步调用的方式加以执行,不止可以减少执行的次数,还可以防止脚本失控。本文还介绍了通过memoization技术取代递归的 方法。 【原文标题】Speed up your JavaScript, Part 2 【原文作者】Nicholas C. Zakas 上周我在... 阅读全文
摘要:
Nicholas教您如何避免Javascript脚本导致IE和其他浏览器运行缓慢 在 Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还 是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离你的用户们。可你是否知道,这些不同的浏览器究竟是如何判断,哪些脚本处于“失控”状态 么?本文作者,就从Internet Explorer、Firefox、Safari、Chrome和Opera五种浏览器,分析了这个情况出现的原因。 【原文标题】What determines that a script is long-running? 【原文作者】Nichol... 阅读全文
该文被密码保护。 阅读全文