复杂界面,如何确认表单数据是否更改?

问题背景

公司使用封装的Jalor框架。
切换中英文时,界面将刷新重载。
在界面存在表单时,直接重载会丢失数据,希望在这种情况下,识别用户是否做了修改,进行相应的提示。
如果没有改动,那么直接刷新界面。如果有改动,弹框提示用户是否保存数据。

解决方案

问题的关键在识别用户是否修改了数据。
搜索了一下目前常见的解决方案,有两种。

  1. 捕获界面的change事件,捕获到change事件则在切换中英文时弹框拦截跳转,进行提示。如果事件被触发,那么代表数据被修改。
  2. 对比表单初始数据,与切换中英文时的数据。如果不一致,那么数据被修改。

困难点

总的来说,是由于涉及的页面是一个复杂页面,表单的数据由多个部分组成。导致以上两种方法都不可行
第一个方法,为元素绑定事件。不可行。首先,识别元素困难,因为界面的组成部分除了直接写在html中,用Js循环加载,还涉及许多隐藏嵌套的界面。其次,元素数量太多,一一绑定将影响性能。
第二个方法,难点在于获取表单初始数据。表单的数据来源来自许多个异步请求,无法得到所有异步请求结束的时间点。此外,一些请求深深嵌套在子页面之中,很难一一识别进行初始数据保存。

悬而未决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

picoasis

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

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

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

打赏作者

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

抵扣说明:

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

余额充值