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

dojo 发布和订阅

    博客分类:
  • dojo
阅读更多
扩展一个button

定义一个dataPd.js(当然目录相对dojo,文件夹为eventTest),内容如下:
dojo.provide("dataPd");
dojo.require("dijit.form.Button");
dojo.require("eventTest。accept");
dojo.require("dijit._Widget");
dojo.require("dijit._Templated");
dojo.declare('eventTest。dataPd', [dijit._Widget, dijit._Templated], {
    widgetsInTemplate: true,
    templateString:'<div><button dojoType=dijit.form.Button dojoAttachEvent="onClick: _onClick">Click</button></div>',
    oddEvent:function(){
        for(var i=0;i<10;i++){
            if(i%2==0)
            {
                dojo.publish("oddEvents",[i]); //如果判断i为偶数,这发布一个事件,传递的参数为此时i的值ֵ
            }
        }
    } ,
    _onClick:function(){
          var myObject=new eventTest.accept();
          dojo.subscribe("oddEvents", myObject,'eventAccept');//点击onClik时订阅这个事件(只需订阅一次即可)即每当oddEvents事件被发布时,即调用myObject对象中的eventAccept函数,通常情况下eventAccept函数应该有一个参数用来接收
          this.oddEvent();
    },
    postCreate:function(){ //次函数为任何对象都会执行的,当然放在这里没用,可以去掉,它是默认的方法
    alert("--------");
    },
    constructor:function(){//次函数为任何对象都会执行的,当然放在这里没用,可以去掉,它是默认的方法
    console.log('-----------');
    }

});




eventTest.accept类定义如下:
dojo.provide("eventTest.accept");
dojo.declare('eventTest.accept',null, {
        constructor:function(){
          } ,
    eventAccept:function(i){
          console.debug(i);
    }



});


在html中:
<div dojoType="eventTest.dataPd"></div>
运行此html
出现一个button 点击 查看console输出
0
2
4
6
8
分享到:
评论

相关推荐

    dojo中文文档-dojo手册

    dojo.connect允许开发者订阅和发布事件,而dojo.disconnect则可以解除事件监听。这种事件模型使得代码更具响应性和模块化。 在UI组件方面,Dojo Toolkit提供了大量预先封装好的可复用组件,如dijit/form/TextBox、...

    DOJO 学习笔记 dojo

    `dojo.event` 以及 `dojo.event.topic` 和 `dojo.event.browser` 是事件管理和发布订阅模式的实现。`dojo.event` 用来绑定和解绑事件,`dojo.event.topic` 提供了消息传递机制,而 `dojo.event.browser` 是浏览器...

    dojo事件处理框架

    Dojo还引入了Topic机制,它是一个发布/订阅模式的实现。对象可以发布事件到特定的topic,其他对象可以订阅这些topic来接收事件。这对于解耦组件间的通信非常有用。例如: ```javascript var exampleObj = { ...

    dojo JavaScript框架 Ajax学习

    另外,dojo的`dojo.Stateful`和`dojo/topic`模块对于状态管理和事件发布订阅机制至关重要。`dojo.Stateful`提供了一种方式来跟踪和修改对象的状态,而`dojo/topic`则是一个简单的发布/订阅事件系统,允许组件之间...

    Dojo权威指南源代码

    10. **dojo/topic**:发布/订阅模式的实现,用于组件间的通信。 通过分析和实践这些源代码,开发者不仅可以深入了解Dojo的工作原理,还能掌握实际开发中的技巧和最佳实践。Dojo的源代码是学习和进阶JavaScript及...

    Dojo基础2事件侦听器

    总结起来,Dojo的事件处理机制包括事件标准化、事件监听、事件传播控制以及发布/预定通信,这些功能为开发者提供了强大且灵活的工具,使得在Web开发中处理用户交互变得更加简单和高效。通过理解和掌握这些概念,你...

    精通Dojo中文版书练习(原码)

    10. **dojo/topic**:事件发布订阅机制,允许不同模块间进行通信,实现解耦。 通过《精通Dojo》书中的练习代码,你可以深入理解这些概念,并学习如何将它们应用到实际项目中。通过实践,你将能够熟练运用Dojo来构建...

    dojo widget安全通讯

    通过事件订阅和发布,Widget可以在不影响彼此的情况下交换信息,而且Dojo.secure可以确保这些通信过程的安全性。 7. **总结** Dojo Widget安全通讯的重点在于通过Dojo提供的各种安全工具和机制,确保Widget间的...

    dojo-release-1.3.2-docs

    11. **dojo.publish/dojo.subscribe**:Dojo的事件发布订阅系统(Topic)允许不同部分的代码通过主题(topic)进行通信,实现解耦。 12. **dojo.connect/dojo.disconnect**:这两个函数用于连接和断开事件处理程序...

    dojo toturial with design best practise

    观察者模式(Observer)用于实现发布-订阅机制,如dojo/topic,让多个对象可以监听和响应特定事件。 Dojo的声明式编程模型(dijit/_TemplatedMixin)结合模板(dojo/text!)和数据绑定(dojo/_base/lang的lang....

    DOJO 0.4.3

    例如,`dojo.publish`和`dojo.subscribe`分别用于发布和订阅消息,使得不同部分的代码可以通过消息系统进行通信。这对于实现模块化、松耦合的架构非常有帮助。 5. **国际化与本地化** DOJO 0.4.3版本支持多语言...

    dojo 参考资料

    15. **dojo/topic**:发布/订阅模式的实现,用于实现组件间的通信,构建松耦合的系统。 16. **dojo/Stateful**:状态管理基类,常用于创建具有可观察属性的对象,是数据绑定的基础。 通过学习和掌握以上知识点,...

    dojo数据推送库

    2. **订阅与发布**:客户端可以订阅特定的主题(topic),服务器端则可以向这些主题发布消息。当服务器有新数据时,会自动推送到订阅了该主题的客户端。 3. **消息处理**:dojo数据推送库提供了一套事件驱动的API,...

    cometd-3.0.0.beta2-distribution.tar.gz

    在实际应用中,开发人员应关注如何集成CometD到现有项目中,配置服务器和客户端,编写发布和订阅逻辑,以及处理可能出现的网络问题。同时,通过阅读提供的文档和示例,可以更快地掌握CometD的使用方法。 总的来说,...

    Jetty cometd(Continuation)学习笔记

    Dojo提供了Cometd模块,可以方便地与Jetty Cometd服务进行对接,实现订阅和发布消息的功能。例如,客户端可以通过订阅特定的频道来接收服务器推送的消息,而服务器则可以通过发布消息到这些频道来更新客户端的状态。...

    cometd 框架实现的几个小程序

    在实现这些功能时,前端通常会使用JavaScript库(如jQuery或Dojo),通过CometD JavaScript API进行订阅和发布操作。后端则使用Java编写CometD服务端代码,处理订阅、发布以及业务逻辑。Jetty服务器作为CometD的运行...

    javascript中读取Struts2标签datetimepicker的值.doc

    一旦Dojo被加载,就可以通过`dojo.widget.byId`方法来获取日期时间选择器对象,然后调用其相应的`getValue`和`setValue`方法来进行读写操作。 ##### 读取日期时间选择器的值 ```javascript var time1 = dojo....

    ITCYC中一位同行发表的电子书,收藏下来方便下载观看

    1. 消息驱动模式,以EventProxy为代表,它通过事件发布和订阅的方式来简化异步操作的管理。 2. Promise模式,以CommonJSPromises、jQuery和Dojo为代表,Promise对象提供了一种标准化的方式来处理异步操作的结果,它...

Global site tag (gtag.js) - Google Analytics