`
tjuking
  • 浏览: 193774 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Javascript中产生固定结果函数的优化

阅读更多

分享一个Javascript编写函数的优化技巧。

 

适用的函数应该要满足以下条件:

  • 产生固定结果
  • 页面中多次调用
  • 复杂或较耗时

代码和分析如下:

 

//产生固定结果并且在页面中多次调用的函数
function check() {
    //模拟耗时操作
    var begin = Date.now(); //ECMAScript5添加的,若不支持请改成 +new Date();
    var ONE_SECOND = 1000,
        result = false;
    while(true) {
        if(Date.now() - begin >= ONE_SECOND){
            result = true;
            break;
        }
    }
    
    //函数重写,直接返回结果
    check = function() {
        return result;
    }
    
    return result;
}

var firstBegin = Date.now();
check();    //第一次函数调用
var firstEnd = Date.now();
check();    //第二次函数调用
var secondEnd = Date.now();

console.log("第一次函数费时:" + (firstEnd - firstBegin) + "ms.");
console.log("第二次函数费时:" + (secondEnd - firstEnd) + "ms.");
 

显示结果如下:


 

  • 大小: 10.3 KB
1
10
分享到:
评论

相关推荐

    Javascript中产生固定结果的函数优化技巧

    分享一个Javascript编写函数的优化技巧;适用的函数应该要满足以下条件;产生固定结果;复杂或较耗时等等,感兴趣的朋友可以了解下

    SQL查询安全性及性能优化

    只能执行存储过程中固定的代码 限制输入长度 防止黑客输入超大字符串,导致服务器瘫痪 防止黑客输入较长的恶意脚本等 实现方法:文本框的MaxLength属性 URL重写技术 示例: http://testWeb/news.aspx?id=111 ...

    X-Cart Gold 4.5.4.zip

    [* 2012年10月04日,ABR - 改进(0125385):优化的func_query_hash()函数。新增的测试。 [*] 2012年9月28日,ABR - 改进(0126569):改进的JavaScript代码缩进。 [*] 2012年9月28日,ABR - 改进(0126474):...

    asp.net知识库

    Oracle中PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle数据库字典介绍 0RACLE的字段类型 事务 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步...

    仅2行代码的javascript按指定格式显示日期时间效果

    在蓝色理想学习了N年,今天第一次发点自己的原创,因为我曾为解决该问题花了不少时间,主要是网络上找到的代码要么非常烦琐,要么不能通用或格式只能固定几个,所以我专门对这个问题进行了研究,最终优化到只有2行...

    jquery插件使用方法大全

    正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于...

    particle-life:生命与粒子的游戏

    测量和优化Universe.step()函数。 衡量random-js和prob.js的性能以确保它不是一个巨大的瓶颈。 添加具有缩放和跟踪功能的摄像头逻辑。已知错误渲染性能目前很差(18-20 fps)。 尚无用于缩放/重置的键盘映射。发展...

    超实用的jQuery代码段

    超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...

    note:笔记

    防抖:设置固定的周期,让连续触发的函数按照固定周期执行。区别:防抖是连续触发如果未超过设定时间则不执行,而节流在连续触发中按照设定的周期时间多次执行。使用场景:节流:常用在页面监听滚动事件时使用,例如...

    log4Net详解(共2讲)

    4、详尽演示FireFox中ExtJs的调试及VS2008中javascript的调试方法; 5、了解ExtJs代码的混淆、加密与优化; 6、了解大型实际商业OA项目流程及实战如何使用Ext快速开而简单地开发单页面应用。 注:如果你也在思考...

    java源码包2

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    sesvc.exe 阿萨德

    从这两个核心方法(get/put)可以看出 1.8 中对大链表做了优化,修改为红黑树之后查询效率直接提高到了 O(logn)。 但是 HashMap 原有的问题也都存在,比如在并发场景下使用时容易出现死循环。 final HashMap, ...

    是谁呼叫舰队WhoCallsTheFleet.zip

    获取访问Web App点击访问 fleet.diablohu.comWeb App针对手机与平板设备进行了优化适配,可用移动平台浏览器访问后选择将该Web App固定到主屏幕上,以便日后使用。获取客户端版本百度网盘 | OneDrive支持的操作系统...

    java源码包---java 源码 大量 实例

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

    JAVA上百实例源码以及开源项目源代码

    产生RSA密钥对(myKeyPair),得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,...

Global site tag (gtag.js) - Google Analytics