找回密码
 立即注册

QQ登录

只需一步,快速开始

wsh89757
金牌服务用户   /  发表于:2024-9-26 15:21  /   查看:727  /  回复:12
28金币
目前遇到页面数据没加载完成,用户就直接提交的情况,导致没加载出来的数据缺失,缺失的数据是页面容器里没加载完的数据,有没有机制可以避免这种情况?


附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

12 个回复

倒序浏览
Joe.xu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-9-26 17:43:37
沙发
一般来说,页面还没有加载完成是不能执行命令的,楼主可以尝试,先禁用保存数据的按钮,
当下面的函数判断加载完成时,再启用按钮
https://help.grapecity.com.cn/pa ... ion?pageId=72365941
也可以尝试,打开这个页面时候开启页面加载动画,再在此页面的页面加载命令中关闭加载动画
回复 使用道具 举报
wsh89757
金牌服务用户   /  发表于:2024-9-27 14:40:47
板凳
本帖最后由 wsh89757 于 2024-9-27 15:00 编辑


页面A-->页面容器B-->页面容器C,也就是三个页面嵌套。
现在我们是一个页面A里设置了一个页面容器,给放在第一个页面容器的页面B里面又设了一个页面容器,用来放页面C
我们现在想的是通过js把监听PageDefaultDataLoaded事件的动作放到页面C上,当这个事件被触发时,给页面B上的一个单元格赋值。
在保存数据时,通过这个值来判断页面是否加载完成。现在的情况是页面B上是有命名为container_017的单元格,但在控制台上会报找不到

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
风之剑
初级会员   /  发表于:2024-9-27 15:44:16
地板
个人的理解:

因为活字格是前后端分离的,所以理论上来说,未加载完毕的数据,肯定是已经存在的数据,不是临时录入的。
那么也就意味着,如果此时页面做了其他保存动作,但是数据却没有保存成功,你应该用的是前端命令。

建议可以尝试下使用服务端命令,在后端先查询出来要显示的这些数据,然后再保存。
回复 使用道具 举报
wsh89757
金牌服务用户   /  发表于:2024-9-27 16:29:47
5#
风之剑 发表于 2024-9-27 15:44
个人的理解:

因为活字格是前后端分离的,所以理论上来说,未加载完毕的数据,肯定是已经存在的数据,不 ...

这也是一种方法,但这个业务未加载完的数据 客户是会变更的,直接保存库里的话会和实际不一致
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-9-27 17:37:40
6#
感谢大佬支持,大佬咱们是否可以将页面的加载模式,由渐进式加载修改成一次性加载,一次性加载的好处,就是页面上的元素没有加载完成,按钮就不会出现,也就不能保存,想要保存的话就需要等页面加载完成。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
wsh89757
金牌服务用户   /  发表于:2024-9-27 17:46:34
7#
本帖最后由 wsh89757 于 2024-9-27 17:48 编辑
Grayson.Shang 发表于 2024-9-27 17:37
感谢大佬支持,大佬咱们是否可以将页面的加载模式,由渐进式加载修改成一次性加载,一次性加载的好处,就是 ...

那我们现在不是有三个页面,这三个页面都需要改成一次性加载吗?改成一次性加载不是会影响到页面的加载速度。有没有其他更合适的解决方案啊?
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-9-29 09:39:00
8#
大佬您好,一次性加载和渐进式加载的性能是一样的,两个的区别是一个是等所有页面元素加载完成之后再展示,一个是将加载过程展示出来,只不过是给用户的感觉会是渐进式在页面打开的响应更加快速。
咱们页面出现加载问题大的原因主要在于,页面上的元素太多,其他的优化方案,相对比较常规,一是结合浏览器的性能分析模块,看看影响页面加载的主要是哪一个部分看看是否可以优化。其次关于逻辑出现问题,比如数据未加载,先执行了操作,可以优化整体逻辑,和帖子中第一个回复相似,具体就需要测试了。
回复 使用道具 举报
wsh89757
金牌服务用户   /  发表于:2024-9-29 18:14:43
9#
Grayson.Shang 发表于 2024-9-29 09:39
大佬您好,一次性加载和渐进式加载的性能是一样的,两个的区别是一个是等所有页面元素加载完成之后再展示, ...

你好,这个方案我们试了,结果还是一样,还是会出现丢数据的现象
回复 使用道具 举报
wsh89757
金牌服务用户   /  发表于:2024-9-29 18:32:04
10#
本帖最后由 wsh89757 于 2024-9-29 18:34 编辑
Grayson.Shang 发表于 2024-9-29 09:39
大佬您好,一次性加载和渐进式加载的性能是一样的,两个的区别是一个是等所有页面元素加载完成之后再展示, ...

你好,如果都像帖子中第一个回复的那样,那是不是我们这边涉及到页面加载数据过慢的模块,都要按照第一条回复的那样设置一遍,是不是太麻烦了,你们这边针对这种情况有没有对应的预防机制啊?
而且第一个回复我们这边现在得到的结果是:通过pageA.bind监听结束事件,会读不到页面B中指定的单元格container_017的值,而且第一次刷新进页面,这个监听事件没有生效,只有第二次进页面这个监听事件才生效
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部