我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Javascript中事件驱动的原理是什么

本篇文章为大家展示了Javascript中事件驱动的原理是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

专注于为中小企业提供成都网站制作、成都做网站、外贸营销网站建设服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业城固免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

首先来看看这样一个应用场景,网页上有个链接,比如说高级搜索,点击以后会出现一个搜索面板。由于面板里有很多搜索字段,而这些搜索字段又有很多数据,因此决定采用异步来加载该搜索面板。以jQuery为例,代码可能会这么写:

$('#advance_search’).bind(‘click’, function(e){  $('#advance_search_panel’).load(‘/xxx/advance_search.html"’);  });

但是呢,又需要在加载后做一些处理,比如说隐藏掉正在加载的提示文字或者图标,好说,就给load加上callback

….load(‘…..', function(){  $('#waiting_message’).hide();  })

面板里面有个搜索按钮,点击进行搜索,加载完需要绑定click事件,于是我们又在下面加上:

….load(‘…..', function(){  $('#waiting_message’).hide();  $('#search_button’).bind(‘click’, do_advance_search);  })

某一天,其他有些页面也要加上这个高级搜索,但是呢,加载完成后的处理又都不一样,有的页面需要隐藏掉某个div,有的页面需要绑定一些操作等,这时候怎么办?难道都去改这个load方法吗?

有一种方法可以解决这个问题,加上callback参数用以回调,比如 new AdvancedSearch(callback); 当然,除此以外,其实还有一种更优雅的方法,事件驱动。

代码写起来很简单,加载完毕后触发这个事件:

….load(‘….', function() {  $().trigger(‘advanced_search_load_complete’);  })

需要在加载完成后做某些操作的地方绑定一下事件处理函数即可:

$().bind(‘advanced_search_load_complete’, function(){  ……  });

封装的地方不用任何改动,其它地方爱做什么操作就做什么操作,这就是事件驱动的魅力,极大的松耦合。

总结一下,事件驱动好处是什么呢?

1. 松耦合的交互,事件发布者和订阅者无须知道对方的存在。

2. 多对多的关系,多个事件发布者对应多个订阅者。

3. 一个个事件发布出来,针对这些事件作出响应,这就是一个业务场景,每个步骤清晰自然。

4. 事件发布可以带参数,事件处理者可以拿到关于该事件的任何数据。

上述内容就是Javascript中事件驱动的原理是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


网站栏目:Javascript中事件驱动的原理是什么
本文路径:http://shouzuofang.com/article/iigdsj.html

其他资讯