zoukankan      html  css  js  c++  java
  • javascript: 代码优化

    一、避免全局查找

    在一个函数中会用到全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度要比访问全局变量的速度更快些

    function search() {
        //当我要使用当前页面地址和主机域名
        alert(window.location.href + window.location.host);
    }
    //最好的方式是如下这样  先用一个简单变量保存起来
    function search() {
        var location = window.location;
        alert(location.href + location.host);
    }

    二、定时器

    如果针对的是不断运行的代码,不应该使用setTimeout,而应该是用setInterval,因为setTimeout每一次都会初始化一个定时器,而setInterval只会在开始的时候初始化一个定时器

    var timeoutTimes = 0;
    function timeout() {
        timeoutTimes++;
        if (timeoutTimes < 10) {
            setTimeout(timeout, 10);
        }
    }
    timeout();
    //可以替换为:
    var intervalTimes = 0;
    function interval() {
        intervalTimes++;
        if (intervalTimes >= 10) {
            clearInterval(interv);
        }
    }
    var interv = setInterval(interval, 10);

    三、字符串连接

    如果要连接多个字符串,应该少使用+=,如

    s+=a;
    s+=b;
    s+=c;

    应该写成s+=a + b + c;

    而如果是收集字符串,比如多次对同一个字符串进行+=操作的话,最好使用一个缓存,使用JavaScript数组来收集,最后使用join方法连接起来

    var buf = [];
    for (var i = 0; i < 100; i++) {
        buf.push(i.toString());
    }
    var all = buf.join('');

    四、释放javascript对象

    在rich应用中,随着实例化对象数量的增加,内存消耗会越来越大。所以应当及时释放对对象的引用,让GC能够回收这些内存控件。

    对象:obj = null

    对象属性:delete obj.myproperty

    数组item:使用数组的splice方法释放数组中不用的item

  • 相关阅读:
    View Documentation in Web Using [openoffice.org 3+swftools+flexpaper]
    swfobject.js
    Java 文件上传组件 Apache Commons FileUpload 应用指南
    模拟HTML表单上传文件(RFC 1867)
    Using CURL to download a remote file from a valid URL in c++
    GUN tar for windows Practice
    Using libcurl in VC++
    Zlib Practice
    解决HtmlAgilityPack中文乱码
    Windows 7,Windows Server 2008 MSDTC配置
  • 原文地址:https://www.cnblogs.com/Nyan-Workflow-FC/p/10653001.html
Copyright © 2011-2022 走看看