美文网首页
惰性加载函数

惰性加载函数

作者: rocneal | 来源:发表于2016-10-12 00:52 被阅读0次

处理 IE 兼容性问题时,一般会进行一些嗅探操作,如何更好的解决这个问题呢?

例如下面自定义绑定事件函数:

标准写法
var addEvent = function(ele, type, handler) {
    // 非IE浏览器
    if (window.addEventListener) {
       return ele.addEventListener(type, handler, false);
    }
    
    // IE浏览器
    if (window.attachEvent) {
       return ele.attachEvent('on'+type, handler);
    }
};
改进一

优点: 不用每次都执行条件语句判断
缺点: 这个函数如果用不到,仍然会执行一次判断

 var addEvent = (function(ele, type, handler) {
   // 非IE浏览器
   if (window.addEventListener) {
       return function(ele, type, handler) {
           ele.addEventListener(type, handler, false);
       };
   }
   
   // IE浏览器
   if (window.attachEvent) {
       return function(ele, type, handler) {
           ele.attachEvent('on' + type, handler);
       };
   }
})();
改进二

优点: 只有第一次调用时,会执行一次条件语句

var addEvent = function(ele, type, handler) {
    // 非IE浏览器
    if (window.addEventListener) {
        addEvent = function(ele, type, handler) {
            ele.addEventListener(type, handler, false);
        };
    } else if (window.attachEvent) {
        // IE浏览器
        addEvent = function(ele, type, handler) {
            ele.attachEvent('on' + type, handler);
        };
    }
    addEvent(ele, type, handler);
};

相关文章

  • 惰性加载函数

    1.普通函数 缺点: 每次调用要重复判断 2.避免每次重复判断 缺点:首次页面加载会进行一次判断,延缓页面首次加载...

  • 惰性加载函数

    1.常规 缺点:每次调用都会执行条件判断,可避免 2.改进,只在加载时做判断 缺点:虽避免了判断,但如果从未使用过...

  • 惰性加载函数

    处理 IE 兼容性问题时,一般会进行一些嗅探操作,如何更好的解决这个问题呢? 例如下面自定义绑定事件函数: 标准写...

  • JS性能优化之惰性加载函数

    前端开发不可避免的会有跨浏览器的需求,为了兼容各浏览器,绝大时候我们的处理方式都是用几个if...else或者tr...

  • django源码分析之惰性加载(lazy和LazyObject)

    惰性加载 惰性加载是一种延迟计算的技术,当只有真正需要使用结果的时候才会去计算。Django提供了两种惰性加载模块...

  • Scala关键字lazy的理解和使用

    Scala中使用关键字lazy来定义惰性变量,实现延迟加载(懒加载)。惰性变量只能是不可变变量,并且只有在调用惰性...

  • 高阶函数--实现AOP,函数节流,分时函数,惰性加载函数

    高阶函数是指至少满足下列条件之一的函数。 函数可以作为参数被传递; 函数可以作为返回值输出。 JavaScript...

  • 惰性函数

    今天啊看到一篇讲js性能优化---惰性函数的文章,之前没听过这个。 主要应用在提高js的执行效能上,主要也是应用在...

  • 惰性函数

    惰性函数按照《高程》里面讲解,主要用来屏蔽浏览器之间的差异。其实,也可以用来实现单例。所以惰性函数主要的作用:环境...

  • 惰性函数

    惰性函数它比较懒,不会立即执行。只有需要的时候才去执行创建或加载一些资源对象。举个简单的例子。最近登录流行微信登录...

网友评论

      本文标题:惰性加载函数

      本文链接:https://www.haomeiwen.com/subject/xuzbyttx.html