EAS BOS Waf2框架前端调试技巧

                                                                                Waf2框架前端调试技巧

一、调试模式与运行模式

EAS前端运行模式分为运行模式和Debug模式。

1.1 运行模式: 每个界面的JS都会被打包并且混淆,并将多个JS压缩到一个链接中。

1.2 Debug模式: JS的加载是单个加载的,如果想调试某个页面,可以在URL中加上&debug=true这样所有页面都以DEBUG模式加载JS。

注意: 前端调试请在debug模式下调试即url中需要有debug=true参数(调试快捷键ctrl shift alt d)。

常见问题

Debug模式生效非debug模式不生效

解决方案

在线打包

二、静态化缓存与文件缓存

单据在第一次打开之后,会生成对应的文件缓存(存放在文件目录)以及静态化缓存(存放数据库)。当单据再次打开时会优先加载缓存的内容。

文件缓存存储目录:server\deploy\easweb.ear\eas_web.war\webviews\webframework\temp。

静态化缓存存储表:t_dyn_staticwebpage.

注意: 为了避免缓存对调试的影响,url中可以加上renderModel=client参数,可以用快捷键打开进行调试。

常见问题

在某个js文件中改变dom元素不生效

解决方案

保存配置页面或者清除t_dyn_staticwebpage这个库里的数据

三、标准页面与扩展页面

分析问题时,需要先确定加载的标准页面还是扩展页面,这个涉及到排查问题的根源,扩展页面涉及到二开内容,可能会对标准产品产生较大影响,所有出现程序错误的概率要高很多。

那么如何确定出现问题的页面是标准页面还是扩展页面?

  1. ctrl shift alt d调试打开页面,获取页面url里的uipk参数后缀;
  2. F12打开调试工具,ctrl+p搜索此后缀,如果搜索到了扩展js文件,则说明为扩展页面;                                                                                                                                                                 
  3. 反启用扩展方案后,再次进入页面为标准页面,可以观察分析得出是标准页面出现问题还是扩展页面出现问题。

 

四,调试技巧

调试技巧1——事件总线调试

在waf2框架的页面加载以及事件处理过程中,用到了事件总线进行事件管理,通过事件总线,可以方便的进行调试。

事件总线JS:ctrl p搜索文件eventbus.js


事件总线触发方法:firevent.

通过事件总线,可以获取到程序异常产生的大致范围在哪个事件,然后再去详细分析这个事件所执行到的代码,最终定位问题。

调试技巧2——监听DOM

Chrome浏览器:右键页面上的dom元素,可以发现有个Break On选项,可以监听dom变化,当dom变化时可以再观察堆栈定位dom变化产生的原因,最终定位问题。

https://www.yunzhijia.com/docrest/file/downloadfile/5f02c788d85b84000131559d?big

 

 

调试技巧3——监听浏览器事件

 

在不清楚代码逻辑的情况下,可以采用此方式逐层跟踪代码,最终获取代码实现之处。

 

调试技巧4——监听请求

 

对异步请求设置监听,每次请求时都会进入断点,然后根据堆栈可以看出请求来源,再根据请求来源分析参数来定位问题原因。

调试技巧5——样式分析

样式优先级:

!important样式优先级 > 行内样式 > 样式类

样式类之间样式优先级根据样式权重决定。

 

如何观察dom元素实际使用的样式:

        

通过dom元素界面看computed页签可以确定当前加载的样式。

鼠标移上去才能出现的样式可以模拟操作来进行

五,调试工具与快捷键

Ctrl shift alt s 打开web实用开发功能

Ctrl shift alt d 打开调试界面

Ctrl shift alt m 打开性能分析工具

Ctrl shift alt p 清除文件缓存

Ctrl shift alt c 打开页面全局配置

注:部分版本可能不支持

六,常见调试入口

6.1轻提示类信息调试入口 wafmsgarea.js  show方法

 

6.2 弹窗类提示信息调试入口 wafmsgBox.js  showConfirm等方法

 

6.3 表格格式化调试入口grid.waf.js  $.fn.fmatter

 

6.4 表格刷新调试入口 grid.wafbase.js  搜索‘realoadGrid’

 

6.5 通用查询过滤条件调试入口 wafBizCommonQuery.js  reloadDataGrid方法

 

6.6 表单校验调试入口 webviews/webframework/ctrls/validator/js/validator.js  validateForm方法

 

6.7 页面控件渲染入口 /webframework/core/waf/pagerBuilder.js  _buildComponent方法

 

6.8 F7控件创建调试入口 webviews/bs_f7_web/f7/resources/js/jquery.ui.f7.js  _create方法

 

6.9 F7控件打开调试入口 webviews/bs_f7_web/f7/resources/js/jquery.ui.f7.js  open方法

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书耳朵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值