六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 58|回复: 0

异步javascript的原理和实现

[复制链接]

升级  92%

12

主题

12

主题

12

主题

童生

Rank: 1

积分
46
 楼主| 发表于 2012-12-22 21:31:07 | 显示全部楼层 |阅读模式
异步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:  }
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表