JavaScript怎样使用COM组件的事件
Author:zfive5(zidong)
Email: zfive5@yahoo.com.cn
引子
前些天客户有反应,系统里做的单据莫明没有了,经过代码翻找,大概原因就是异构系统的数据完成性的设计在某些情况下误判,其中如果当然一张成功确认一张,那就不会有这样的问题了。
设计
最初的设计对话脚本如下:
甲: “老大呀,要生成100张单据B ”
乙:“好的,告诉100单据A是什么?”
甲:“单据A1 ,单据A2, 单据A3, ….. 单据A100”
乙: “这么多呀,你的稍会等了”
。。。。。。
等了很久(甲很不耐烦等着,几次都想走,在等与不等中纠结)
。。。。。
乙(擦拭一下脸上的汗,走到甲跟前):“太不易了,还好全部搞定。他们对应生成的是单据B1 ,单据B2, 单据B3, ….. 单据B100 ”
甲:“好快呀!晚上请你老兄吃放”
(其实他想说:“真他妈的慢,在不行,老子就不等了。。。,还想吃饭?”)
乙:“真的假的,多说了好多次了”
甲:“嘻嘻。。”
如果当时设计人员考虑到甲的纠结,就不应该这样的设计他们之间的对话脚本,而应该让它变成这样
甲: “老大呀,要生成100张单据B”
乙:“好的,告诉100单据A是什么?”
甲:“单据A1 ,单据A2, 单据A3, ….. 单据A100”
乙:“老兄,这单据真多,要不我生成一张就告你, 省得你也着急”
甲:“O了”
乙:“单据A1,哦,等等。。。 那是,对 单据B1,下一张是单据A2”
甲:“好,单据B1 对应 单据A1”
乙:“单据A2 . …. 单据B2”
甲:“噢…”
。。。。。。
这样一来一去完成
。。。。。
甲:“老兄,看来你们的工作也不易,晚上请你老兄吃放。”
乙:“哪里,为人民服务吗!”
甲:“说真的。。。”
乙:“那好吧。。。”
世界就是这样才是和谐的,代码与设计一样
总而言之就是开始的设计人员没有不理解COM组件Event的真实含义就在于此,天天学什么LINQ,什么WCF,这个都没有用好,还整天抱怨不想用XX语言了。这也是论语、道德经里句句经典的缘由。
代码
VB的OCX代码
Public Event FireOK()
Private Sub Command1_Click()
RaiseEvent FireOK
End Sub
JavaScript测试代码
<HTML>
<BODY>
<OBJECT id=zfive5 classid="clsid:854D051D-F720-45A1-AD3C-26D7E68F49C4">
</OBJECT>
<script type="text/javascript" >
function OK()
{
alert("看到了吗?");
}
document.getElementById('zfive5').attachEvent('FireOK', OK);
</script>
</BODY>
</HTML>
大道于足下!!!