javascript钩子机制

钩子机制是这样的,大家按照某一规则写一个方法(这个规则在方法名称上),然后页面加载完之前,统一执行所有的钩子函数。

注意callHooks方法,里面的局部变量s就是钩子函数名称中一定要有的内容。——这是使用钩子的方法!

// 处理钩子的对象
var hook = (function(){
    return {
        timer:null,
        init:function(){
            this.callHooks(‘init‘);
        },
        callHooks:function(init){
            var s = "hook_" + init + ‘_event‘,
            f = [];
            for(var h in window){
                if(h.indexOf(s) != 0) continue;
                f.push(h);
            }
            this.hooksTimeout(f);
        },
        hooksTimeout:function(hooks){
            if(0 === hooks.length){
                if(this.timer) clearTimeout(this.timer);
                return;
            }     

            var h = hooks.shift();
            window[h].apply();
            window[h] = undefined;  

            window.setTimeout(this.hooksTimeout(hooks), 200);
        }
    }
}());  

// 钩子1
var hook_init_event_tpl_html = function(){
    document.getElementById(‘test‘).innerHTML = ‘This is HTML!‘;
}  

// 钩子2
var hook_init_event_tpl_console = function(){
    console.log(‘This is console!‘);
}  

// 最好在页面加载完之前调用,也就是在window.onload()之前
hook.init();

  

总结

很多问题,如果大家一起讨论是很有帮助的,在这过程中我们能学到很多东西,我们也可以在这过程中从牛人身上学到很多方法和思维过程,几乎每次的技术讨论会我都有不菲的收获——我不知道这是不是传说中的“头脑风暴”。

javascript钩子机制

时间: 2024-08-27 03:11:41

javascript钩子机制的相关文章

JavaScript事件机制

<script type="text/javascript" src="http://runjs.cn/gist/2zmltkfa/all"></script> [前端培养-作业01]javascript事件机制 1.javascript事件模型 2.e.target与e.currentTarget是干什么的? 3.preventDefault与stopPropagation是干什么的 4.什么是dispatchEvent? 5.说一说事件代

Atitit.js javascript异常处理机制与java异常的转换.js exception process Voae

Atitit.js javascript异常处理机制与java异常的转换.js exception processVoae 1. 1. javascript异常处理机制 1 2. 2. Web前后台异常的统一处理 1 3.  java异常转换为js异常 1 3. -------------详细代码 2 1. 1. javascript异常处理机制 Throw str Not throw error  ..cause ie,ff error obj is diff.. 2. 2. Web前后台异常

Atititjs javascript异常处理机制与java异常的转换.js exception process

Atititjs javascript异常处理机制与java异常的转换.js exception process 1. javascript异常处理机制 Throw str Not throw error  ..cause ie,ff error obj is diff.. 2. Web前后台异常的统一处理 不个java异常转换成个js异常走ok... 作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csd

重温Javascript继承机制

原文:http://mozilla.com.cn/post/21667/ =========================== 上段时间,团队内部有过好几次给力的分享,这里对西风师傅分享的继承机制稍作整理一下,适当加了些口语化的描述,留作备案. 一.讲个故事吧 澄清在先,Java和Javascript是雷锋和雷峰塔的关系.Javascript原名Mocha,当时还叫做LiveScript,创造者是Brendan Eich,现任Mozilla公司首席技术官. 1994年,历史上第一个比较成熟的网

javascript delete机制学习

想了解delete的机制缘起一个现象,我无法解释,也无法理解. 首先看一下下面这个例子: ? 1 2 var x = 1; delete x; //false 然后我又执行了一次: ? 1 2 y = 2; delete y; //true 看到上面的结果,我比较吃惊,为什么同样是删除,区别怎么这么大呢?进而我想学习和了解一下JS delete的机制. 在MDN(Mozilla Developer Network)上看到下面一个例子 ? 1 2 3 4 5 6 7 8 9 10 11 12 13

JavaScript运行机制

JavaScript运行机制单线程的,也就是说在同一时刻不能执行多个任务于是就出现了setTimeout定时器 文章来源:http://www.laruence.com/2009/09/23/1089.html

【JavaScript】重温Javascript继承机制

上段时间,团队内部有过好几次给力的分享,这里对西风师傅分享的继承机制稍作整理一下,适当加了些口语化的描述,留作备案. 一.讲个故事吧 澄清在先,Java和Javascript是雷锋和雷峰塔的关系.Javascript原名Mocha,当时还叫做LiveScript,创造者是Brendan Eich,现任Mozilla公司首席技术官. 1994年,历史上第一个比较成熟的网络浏览器——Navigator0.9版诞生在网景公司(Netscape),极为轰动.但是,Navigator0.9只能用来浏览,不

[解惑]JavaScript事件机制

[解惑]JavaScript事件机制 初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会总结下问题的结论,顺便说说相关知识的扩展~ 如果贸然回答还会冒泡,这不太好的,稍微严谨点考虑 0级 DOM 事件模型的话,这个答案是否定的.但是在 2级 DOM 事件模型中,答案是肯定的,这个问题值得探讨记录下. 本文地址:http://www.cnblogs.com/hustskyking/p/problem-javascript-event.html 一.

我看朴灵评注阮一峰的《JavaScript 运行机制详解:再谈Event Loop》

阮一峰和朴灵对我来说都是大牛,他们俩的书我都买过,阮老师的译作<软件随想录>和朴灵的<深入浅出node.js>.这个事情已经过了4个月了,所以我拿来讲应该也没啥问题. 这件事情是这样的,阮一峰在自己的博客写了篇文章<JavaScript 运行机制详解:再谈Event Loop>,然后朴灵看见了,发现了很多问题,然后在印象笔记又写了篇文章<[朴灵评注]JavaScript 运行机制详解:再谈Event Loop>,由于印象笔记现在已经不能访问了(尼玛也太烂了)