Skip to content

调用 API setBlockAttrs 后推送 Transaction #5847

Closed
@88250

Description

@88250
Member

前面 #5506 的修复方案有问题,会导致 #5841

需要从事务层面解决该问题,即调用该 API 后会推送包含 update 操作的事务,这样前端会自动重新加载该块 DOM,块属性就不会丢失了。

有的挂件可能之前做过一些处理,该机制上线后会导致不兼容,需要挂件作者帮忙更新解决一下,谢谢。

Activity

added this to the 2.1.14 milestone on Sep 9, 2022
self-assigned this
on Sep 9, 2022
Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

该方案会不会导致挂件 iframe 重新加载❓

88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

@Zuoqiu-Yingyi 会的,所以可能需要挂件进行适配。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

@Zuoqiu-Yingyi 会的,所以可能需要挂件进行适配。

这问题不是适配能解决的, 属性里面一般保存一些需要持久化的状态与配置信息, 不能保存一次就重新加载一次呀, 这样所有运行时状态就全没了⚠

88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

不加载的话多开窗口会有覆盖问题,即使单开的话也有 #5506 的覆盖问题。有啥建议不?

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

不加载的话多开窗口会有覆盖问题,即使单开的话也有 #5506 的覆盖问题。有啥建议不?

可以考虑新增一种 transactionsaction 或调整 action: "update" 用于块属性的更新

88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

前端一样还是要刷新的吧?

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

前端一样还是要刷新的吧?

只增删改块 DOM 节点的属性不会影响下级 iframe 节点,我目前实现方案就是这个

88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

那这样数据还是不一致哦。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

那这样数据还是不一致哦。

为什么会不一致呢❓

1 remaining item

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

多开时界面上的状态不一致。

我当前的方案有这个问题,但是使用 transactions 推送就没有这个问题了

88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

所以目前就是考虑用 trans 推送 update 来刷新啊……

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

所以目前就是考虑用 trans 推送 update 来刷新啊……

我说的是使用 transactions 只推送某个块属性的更新而非整个块的 dom,前端接受推送后也只更新某个块的属性而非将整个块的 dom 替换

reopened this on Sep 9, 2022
88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

我们新加一个 trans.op.action updateAttrs 吧,前端仅刷新 iframe 标签属性。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 9, 2022

@Zuoqiu-Yingyi
Contributor

前端仅刷新 iframe 标签属性

是笔误吗,原意应该是 仅刷新对应块的块属性

88250

88250 commented on Sep 9, 2022

@88250
MemberAuthor

这两部分:

image

added a commit that references this issue on Sep 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @88250@Vanessa219@Zuoqiu-Yingyi

      Issue actions

        调用 API `setBlockAttrs` 后推送 Transaction · Issue #5847 · siyuan-note/siyuan