|
异步javascript的原理和实现
<div class="postbody"><div id="cnblogs_post_body">因为工作的需要,我要在网页端编写一段脚本,把数据通过网页批量提交到系统中去。所以我就想到了Greasemonkey插件,于是就开始动手写,发现问题解决得很顺利。但是在对脚本进行总结和整理的时候,我习惯性地问了自己一个问题:能不能再简单点?
我的答案当然是“能”。
首先回顾我的数据批量提交的需求:我有一批用户数据要插入到系统中,但是因为系统库表结构不是行列式的,所以无法转化为sql语句插入。要插入的数据有接近200条,就是傻呵呵地手工录入到系统,估计也要1天的时间。作为程序员,当然不会干这么傻的事情,我一定要用程序来解决。这个编程的过程耗费了我1天的时间。相比手工录入,我额外收入是这篇博文,绝对的合算!
编程平台选择没花费时间,直接选定基于Greasemonkey写自己的脚本,浏览器当然是firefox了。脚本的工作过程:
- 在脚本中预先存放要插入的数据
- 模拟鼠标点击,打开页面中的输入窗口
- 将数据录入到输入窗口,并模拟点击“提交”按钮,将数据提交到系统中。
- 依次循环,直到所有数据都处理完毕。
这里的技术难点在于:
- 打开输入窗口,需要等待不定期的时间,视网络情况而定。
- 提交数据到后台,需要等待处理完毕之后才可以循环下一个数据。
如果我是菜鸟的话,我当然直接写一个类似这样的应用逻辑:
<div class="csharpcode"> 1: for(var i = 0; i < dataArray.length; ++i) 2: { 3: clickButtonForInputWindow(); 4: waitInputWindow(); 5: enterInputData(dataArray); 6: clickSubmitButton(); 7: waitInputWindowClose(); 8: } |
|