声明式Javascript动态加载和浏览器事件绑定
引言
Web前端开发中,开发人员经常需要处理一些常规问题,如:
在页面中引用多个相互存在依赖关系的Javascript文件
在页面中引用CSS文件
浏览器事件绑定
表单的数据填充、数据打包提交、数据校验和格式化
页面初始化逻辑
采用传统的命令式编程范式来处理这些问题时,开发人员不得不反复地通过编写代码调用相关API来完成这些常规任务。事实上,开发人员的主要精力应该集中在业务逻辑实现上,而非在这些常规任务上过多消耗时间。声明式编程范式可以帮助开发人员以最小的工作量去快速搞定这些常规任务,从而能够将更多的精力放在业务逻辑的实现上。
decj是一款以声明式编程范式为基础的Javascript开源框架。本文将介绍如何使用decj框架以近乎零编码的高效率方式去搞定这些常规任务。本期将介绍decj的声明式Javascript文件动态按需加载和声明式跨浏览器事件绑定。
decj框架简介
decj的优势及主要特性
decj使得开发人员能够进行模块化的声明式编程,其目标在于简化Web应用开发中常规问题的处理,使得开发人员能够将更多的精力放在业务逻辑处理上。简单来说,decj的优势在于:
声明式编程:使得开发人员能够集中精力在写必须由其编写的代码,提升开发效率。
decj所解决的问题是几乎每个Web应用中都要面对的普遍的问题:如事件绑定、表单数据校验、格式化、表单提交等。
代码即文档(Code is document):采用decj开发的应用,其代码某种程度上就是文档。
decj的优势也就是声明式编程的优势。通过声明式编程,decj使得开发者面对日常工作中经常要处理的问题时能够集中精力在“真正”需要其处理的问题上。
比如,但某个页面上的一个按钮被单击时,一段业务处理逻辑需要被执行。显然,这段被调用的业务逻辑才是开发者真正要集中精力处理的问题,因为业务逻辑是怎么样的只有人才能知道,而任何框架/库是无法得知并为开发人员代劳的。相反,采用命令式编程的框架/库,在处理此类问题时,开发人员往往得首先分心去处理一些非业务逻辑的问题,比如,如何让这个按钮响应单击事件。比如,若使用jQuery来实现,开发人员需要在代码中的恰当位置/时机(如
window的onload事件被触发后)调用jQuery的bind方法,才能使按钮被单击后执行一段业务逻辑。如清单1代码所示:
清单 1. 命令式编程:使用jQuery处理事件绑定
$(document).ready(function(){//加载页面完毕后执行该函数 $('#aButton').bind('click',function(){ //在此处编写或者调用业务逻辑实现代码 }); });
而采用decj,开发人员无须关心事件处理API以及在何处、何时机调用这些API。可以更加关注业务逻辑。如清单2代码所示:
清单 2. 声明式编程:使用decj处理事件绑定
events:{ "click@aButton":function(){//按钮aButton被单击时执行该函数 //直接在此处编写或者调用业务逻辑实现代码 } }
可以看出,清单2的代码中并没有关于事件API的调用,开发人员因此可以不必关注这些API以及何时在何地方调用它们。开发人员可以重点关注如何响应相关事件,以实现业务逻辑。另外,decj的应用代码可以充当文档。例如,如清单2的代码所示,对于页面上的某个元素的某个事件,是采用那个事件处理器响应的这个信息一目了然,这有助于问题定位,因为定位问题的人可以快速确认他需要的信息。
本栏目更多精彩内容:http://www.bianceng.cn/webkf/tools/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索开发
, 代码
, 事件
, jfinal开发问题
, 逻辑
, 处理
, 业务
, 编程人员
, 函数式Web框架
开发人员关注
web前端开发、web前端开发ujiuye、达内培训 开发前端web、web前端开发培训、web前端开发工程师,以便于您获取更多的相关知识。