找回密码
 立即注册

QQ登录

只需一步,快速开始

BlackCat

初级会员

39

主题

110

帖子

355

积分

初级会员

积分
355
BlackCat
初级会员   /  发表于:2024-4-9 16:34  /   查看:431  /  回复:3
1金币

单元格数据=5

单元格数据=3

单元格数据从5变成了3

js:  获取单元格获取数据=3

if(true){
    js:  获取单元格获取数据=5
}

为啥后面用js获取的数据不正确
============================
实际代码截图

第一张获取的数量是正确的,第二张获取的数据是修改前的数据

这个问题只出现过一次,无法复现,我想问一下,什么问题会导致这种情况
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

您好,看截图。 我们是在 JS 命令中获取页面单元格的值来进行使用。所以这个问题得看下页面单元格的值再那些地方会被写入,即发生变化。 猜测可能的原因是这样的:命令序列里的 JS 命令是异步执行的,所以可能存在这种情况,比如,JS 命令里去获取单元格的值,且 JS 命令执行比较耗时,然后后面命令有又改了单元格的值的话,由于是异步执行的,所以在 JS 命令里获取到后面命令修改后的值。 看能不能把命令的实现逻辑拆分下。 ...

3 个回复

倒序浏览
最佳答案
最佳答案
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2024-4-9 16:34:44
来自 4#
您好,看截图。
我们是在 JS 命令中获取页面单元格的值来进行使用。所以这个问题得看下页面单元格的值再那些地方会被写入,即发生变化。
猜测可能的原因是这样的:命令序列里的 JS 命令是异步执行的,所以可能存在这种情况,比如,JS 命令里去获取单元格的值,且 JS 命令执行比较耗时,然后后面命令有又改了单元格的值的话,由于是异步执行的,所以在 JS 命令里获取到后面命令修改后的值。

看能不能把命令的实现逻辑拆分下。值变化前是一部分逻辑,值变化后是一部分逻辑,分两次触发执行。
回复 使用道具 举报
Grayson.Shang活字格认证 Wyn认证
超级版主   /  发表于:2024-4-9 19:03:16
2#
大佬您好,咱们描述的场景是不是这样子的
1. 命令中,第一次通过JS获取单元格的值,没有问题
2. 相同命令中,使用命令修改了单元格的值
3. 相同命令中,第二次获取单元格的值,还是和第一次JS获取的值是一样的

不清楚是不是和我上面描述的场景一致,不过我这边根据上面的步骤测试了一下,正常来说应该都是没有问题的

咱们若是出现过一次,可能第二步的命令修改页面上的值比较慢,因为在命令中执行JS,是异步的比如第二步修改值不是直接修改,而是间接修改,那么就有可能存在第3步的命令先获取到修改前的值
回复 使用道具 举报
BlackCat
初级会员   /  发表于:2024-4-10 08:25:07
3#
Grayson.Shang 发表于 2024-4-9 19:03
大佬您好,咱们描述的场景是不是这样子的
1. 命令中,第一次通过JS获取单元格的值,没有问题
2. 相同命令 ...

不是的,是先在页面中对单元格进行了修改。例如由数字10改成5  
两次js获取单元格数据中间没有再对单元格进行修改。
第一次js获取的数据是修改后的5。
第二次js获取的数据是修改后的10。



现在问题没办法复现了,猜测可能是活字格获取的数据不对,也有可能不是。

我想问的是,活字格在网络较差或其他异常环境会不会出现这种问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部