gpt4 book ai didi

javascript - 当文本由外部源更新时,防止 ckeditor 触发设置回调

转载 作者:行者123 更新时间:2023-12-03 23:44:57 24 4
gpt4 key购买 nike

我正在开发一个实时 Vue 项目,它使用 ckeditor5 作为文本编辑器。 Pusher 是一个实时 API,它使用 websocket 将事件实时广播到其他 Pusher 实例。
This is Pusher

在 ckeditor 配置中,我传递了一个 set打回来。这个设置回调,在任何文本更改时触发,我用它来触发推送事件,广播文本
对其他推送器实例的值(value)。

当对方的推送器实例收到事件时,问题就出现了,在处理之后,Vue react 性地更新 DOM 中的文本值,从而触发上述 set回调,再次触发事件。在实时环境中,它会扰乱值更新,并以文本闪烁结束。

在回调中,我只得到一个字符串值,我无法找出是什么发起了回调,因此无法停止执行。

有没有办法阻止 ckeditor5 触发回调?

这可能是每个基于 websocket 的项目都存在的问题。

最佳答案

问题在于,当更改触发广播并且 Pusher 客户端接收并应用它时,它会随着客户端的更改而被广播。
当原始广播公司收到更改时,它无法确定是否是自己的更改并再次应用。

在我尝试创建 ckeditor 插件以过滤掉已初始化为 ckeditor 实例本身的传入更改失败后,我决定采取一种解决方法来解决此问题。

我创建了一个缓存,它在广播初始化的更改之前将它们存储几秒钟。当从 Pusher 客户端收到更改时,只有在缓存中不存在更改时才会应用更改,因此它由另一个客户端初始化。

此解决方法在大多数情况下都有效,但 Internet 连接速度非常慢且响应时间较短(这取决于缓存时间)仍可能存在问题。

关于javascript - 当文本由外部源更新时,防止 ckeditor 触发设置回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59863345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com