有效组织页面中的Javascript脚本

组织复杂JS脚本
本文提出一种组织复杂JavaScript脚本的方法,旨在降低脚本复杂度并提高可读性和开发效率。该方法通过控制层检测页面事件,触发执行层的相应脚本文件。

有效地组织页面中复杂的JavaScript脚本

 

当我们用 JavaScript 编写较复杂的页面功能时,常常会出现脚本编写混乱,不堪入目,调试时也很难找到问题所在。为此,我想出一个有效组织脚本的结构(自己还没试过,呵呵),目标是减少代码的复杂性,并有效地组织脚本,提高脚本代码的可读性,同时在另一方面也能提高脚本的开发效率。

  下面我对这个脚本体系结构作些简要的介绍:

  先来一张结构图(乍一看是不是有点像MVC,呵呵):
javascriptmvc.png

控制层 用于整个页面脚本体系的组织和关联,负责页面事件的检测及捕获,并对事件调用执行层相应的执行脚本。检测一般采用window.setTimeout()或window.setInterval()实现。比如检测页面中name为textName的文本框是否为空,可以这么实现:
<input type="text" name="textName"> <script language="javascript"> <!-- function checkIt() { if (document.all("textName").value == "") window.setTimeout("checkIt()", 500); else alert("Check!"); } checkIt(); //--> </script>
  当调用checkIt()检测到textName不为空这个事件时,则弹出对话框提示"Check!"。这里还没关联到执行层,下面来看看执行层。

执行层 以.js的文件格式(JavaScript脚本文件)存放,每个.js文件代表了一系列动作。当控制层检测到某个事件时,就调用相应的.js文件以响应事件。因此上例代码可改为:
<input type="text" name="textName"> <script language="javascript" src="" id="activeScript"></script> <script language="javascript"> <!-- function checkIt() { if (document.all("textName").value == "") window.setTimeout("checkIt()", 500); else document.all("activeScript").src="alertIt.js"; } checkIt(); //--> </script>
  其中alertIt.js就属于执行层,其内容如下: <!-- alert("Change!"); //-->
  当checkIt()检测到textName不为空这个事件时,则调用alertIt.js脚本,弹出对话框提示"Check!"。执行效果应该与上例一样。

页面层 页面控件是页面层的主要内容,如<input>框,<div>区域等等。我们利用控制层检测页面层某个控件的状态,当它的状态发生变化时,则控制层立即对该事件进行处理,调用该事件在执行层相应的脚本文件,最终作用在页面层上。
  利用这个结构,可以很容易地控制页面功能的流程,通过调用动态脚本文件,还可以对服务器端和数据库进行读操作;如果能结合IFRAME,并利用表单,还可以进行写操作。

(以上实例在IE6.0及Opera7.5下测试通过,很可惜,在Mozilla/FireFox里不能通过。)

转载于:https://www.cnblogs.com/dyson/archive/2007/04/25/726773.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值