核心需求很简单,就是当一个前端体系变得很庞大的时候,我们对页面加载之后的一系列运行步骤,可能就失去控制了,简单说,我们并不知道脚本对页面进行了如何的细节改造。因此在我们对某些流程进行改动时,很可能会影响其它的关联流程(这一方面也跟我们设计的逻辑耦合相关,但无论如何,这些事情还是可能发生的),从而引发bug。我们希望能通过自动化测试预知这些关联,而不是等到用户反馈这些bug。所以我有一个看上去比较庞大的设计,在页面引入一个监控脚本,注册一个页面init方法(即脚本开始的地方),我可以随时通过console获得一份数据流,通过其它工具可以转化为为可视化的流程图。其实只要有了数据流,就可以做N多事情了,比如流程对比,时耗监控,死循环可能性检测等~本来想尝试在脚本初始化之前直接通过脚本去改造function,但不太完美,比如:
function a(){}
如果要对这个方法建立监控,我希望a的定义是:
function a(){
  log(this); //监控点,进入堆栈
}
如果这个a是可以通过window对象直接或间接检索的话,还有机会可以实现override,覆盖定义,但如果是在方法内部定义或闭包/匿名方法,就没机会了~现在的想法是,直接用工具重写脚本文件,将监控点harcode到function里面,这样就比较好搞了,不过做法有点恶心。
不知道大家有没有更好的想法,或者可能我还没有描述清楚,欢迎回复探讨!

解决方案 »

  1.   

    直接用工具重写脚本文件,将监控点harcode到function里面,这样就比较好搞了,不过做法有点恶心。首先能解决问题的就是好方法,然后在这些方法中选取最适合当前需求的方法
      

  2.   

    单纯JS实现起来估计有点难。看看能否结合jQuery封装的AJAX、Json等方法来实现。
      

  3.   

    我又回来CSDN了,系统提示我有帖没结,过来一看正好,是跟JFV有关的,一看日期去年八月,好,正好半年,夙愿了结,稍安勿躁,JFV很快就面世了,一定会让大家惊艳!