您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

js自定义消息机制研究学习(二)——做一些改动,定制自己的消息机制

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 20:24 点击:

今天我来尝试修改一下代码,以使它更适合我们实际的研发情况。

 

首先,我们修改一下代码,让它可读性稍微好一点。(原代码参考上文)

 

monitor.js

var  monitor= (function(){        function bind(b){            var queue = this.__MSG_QS__;            if (!queue[b]) {                queue[b] = []            }            for (var a = 1, X = arguments.length, Y; a < X; a++) {                queue[b].push(arguments[a])            }        }        function trigger(Y){            var queue = this.__MSG_QS__[Y.type];            if (queue == null) {                return            }            for (var a = 0, X = queue.length; a < X; a++) {                queue[a].handler(Y)            }        }        return {            ini: function(X){                X.__MSG_QS__ = {};                X.bind = bind;                X.trigger = trigger;                return X            }        }})();好了,现在我们有一个monitor对象了

 

 

现在来说说加入我们使用这个对象有可能要应对的情况。

 

 

 

一、将消息直接通知到函数

 

如果我们要简单监听某个对象里的某个消息,譬如下面代码中这个对象里的sendData消息

 

View Code

var obj1=monitor.ini({sendData:function(){    this.trigger({type:"sendData",data:"1"});}});我们只是想简单的将这个要发送的数据alert一下,代码如下:

 

View Code

obj1.bind("sendData",{handler:function(data){   alert(data.data);}});  

 

高兴的事,我们很快写完了。我么可以不要{}呢,也不写handler么?

 

我们改改monitor,让它能直接将消息发送到函数,对monitor的trigger内的方法做一个简单的更改,如下:

 

View Code

function trigger(Y){            var queue = this.__MSG_QS__[Y.type];            if (queue == null) {                return            }            for (var a = 0, X = queue.length; a < X; a++) {               if(queue[a].handler)               {         &nbs

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • JSP与Servlet
    • 自己动手写MiniBBS系列(基本篇)之用户登录
    • JSP取当前日期
    • JDBC 入门(一)
    • 打开一个jsp页面默认查询所有数据,调用action
    • 使用JSP标签库验证用户的输入(2)完
    • WIN98/2000下的jsp服务器
    • 自定义JSP标签(tag)浅议
    • Struts学习傻瓜式入门篇
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1