反链面板突然消失以及不自动计算 bug

本贴最后更新于 969 天前,其中的信息可能已经时移世异

在查看长文档的过程中,经常会出现反链面板内容突然消失的情况,而且通过刷新也无法重新显示,可能和动态加载有关:

temp201.gif

在我打开反链面板时,有时候不会自动计算反链,需要我点击刷新后才转换成当前文档的反链(不能稳定复现,需要多试几次):

temp202.gif

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    22337 引用 • 89378 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 估计是因为库有点大,查询反链太慢,导致后面的请求延时覆盖了,先记录 Issue #4414 · siyuan-note/siyuan

    2 回复
  • fangly

    那帖子中的第一个问题呢,应该和这个请求延时没关系吧

    1 回复
  • 用那个块滚动条加载的话只加载当前块(相当于聚焦),所以反链面板上可能没有相关数据。

    1 回复
  • fangly

    现在这个逻辑好像有点奇怪,我正常拖块滚动条并不会聚焦,我点了下大纲中的标题再拖动,这时会在面包屑上看到聚焦到了对应标题(不是段落块),这个逻辑是正确的吗?

    而且从帖子图片中的面包屑上可以看到,并没有聚焦,原先面包屑上的高亮焦点消失了,不知道现在是聚焦到哪个块当中了,我猜是这里出现了 bug,导致反链面板的响应也出现问题:

    image.png

    还有,帖子图片中只是复现的一种方式,我平常使用时从来不用块滚动条,只用鼠标滚轮动态加载时也出现了这个 bug,所以这个 bug 应该和块滚动条没有直接关系

    而且,我觉得用户没有主动聚焦时,反链面板不应该按聚焦的逻辑响应,在整理一个长文档的反链过程中,反链面板突然啥都没有了,这会让用户非常疑惑,这种逻辑会导致用户无法通过反链面板整理长文档的反链。

    1 回复
    3 操作
    fangly 在 2022-03-28 22:53:56 更新了该回帖
    fangly 在 2022-03-28 22:51:36 更新了该回帖
    fangly 在 2022-03-28 22:44:12 更新了该回帖
  • 嗯,你说的对,这里的逻辑我和 @Vanessa 再讨论一下,多谢。

  • 第一个问题无法重现,还麻烦下个版本再看看。

    1 回复
  • fangly 1

    还是能重现(点几次大纲中的标题,再拖动几次块滚动条):

    temp204.gif

    而且可以看到面包屑上的聚焦高亮变化了,用户没有主动操作聚焦,这应该是软件自动做的,软件不应该自动改变聚焦块吧

    复现不了或许可以用我这个文档试试:

    20210627135410kheinv1.zip

    1 回复
  • fangly 1

    感觉和查询慢没有直接关系,就算查询慢也应该不会出现这个问题,而且这几个文档的反链面板之前打开过,有缓存,反链面板本身是能秒显示的。详细流程:

    首先反链面板关闭

    我先在文档 A 中打开反链面板,刷新,使反链面板显示文档 A 的反链

    然后我关闭反链面板

    之后我打开文档 B,如果这时候我先等一会儿,再打开反链面板,显示正常,反链面板中是文档 B 的反链

    但如果我打开文档 B 时,紧接着马上打开反链面板,反链面板就会停留在文档 A 的反链,不会变成文档 B 的反链,需要我手动刷新

    如果我反链面板一直开着,切换文档时是不会出现问题的,就是在切换文档和打开反链面板紧接着进行时,会出现问题

    这个 bug 给我造成的影响是:每次我打开反链面板时,我不确定这时候后台究竟有没有在计算反链,因为前台并不会显示后台有没有在计算反链(或许后台在计算反链时刷新按钮应该也转,这样能告诉用户后台在计算),可能我等了 10 秒钟,反链面板还是停留在之前文档的反链,因为这个请求被覆盖了,后台根本就没有在计算这个文档的反链,所以我又要手动点刷新按钮,所以前面等待的 10 秒钟完全是浪费了。

    1 回复
    1 操作
    fangly 在 2022-03-31 22:02:33 更新了该回帖
  • 明白了,能够重现问题了,多谢。

    1 回复
  • 对了,那个云端全量同步的问题可以试下新初始化一个新的云端目录,估计是之前 Rsync 时代的遗留问题。

    1 回复
  • 这个也可以重现了,在 Issue #4414 · siyuan-note/siyuan 中一并修复。

  • fangly

    我删除原先的云端同步目录,然后新建了一个云端同步目录(是这样操作吗,还是需要把本地的 sync 文件夹也删了重建呢?)

    然后遇到了和 【反馈】手机云端同步太难了! 一样的问题,同步了将近十次,每次都同步到一半失败了:

    image.png

    我手机端用的不多,我记得我上次用的时候尽管每次都要全量同步,但至少还是能同步下来的,每次断开之后,重新开始也不是从零开始,而是从之前断开的地方开始,而这一次使用时每次都是从零开始

    还有这两个的时间不一致,不知道是不是 bug:

    image.png

    1 回复
    1 操作
    fangly 在 2022-04-01 11:44:32 更新了该回帖
  • fangly

    有个疑问,不清楚是不是我的理解有误。这个 issue 写的是 alt+7 触发刷新,那么当这个 issue 修复之后,假设文档 B 的反链很多,刷新加载反链时要等待很久,然后我几分钟前打开过文档 B 的反链,也就是说有文档 B 反链的缓存,正常情况这时候反链面板应该是可以秒开的,这时候如果我切换到文档 B 后紧接着马上 alt+7 打开反链面板,这时候是触发刷新重新计算反链呢(等待很久计算反链),还是直接调用缓存呢(秒开)?我觉得按理来说应该是要直接调用缓存,但这个 issue 给我的感觉好像是要刷新重新计算反链

    1 回复
  • 先删除云端同步目录,本地暂时不要动,操作之前记得备份整个 data 到其他地方。

    看报错可能是网络问题,试下换个网络环境。

    1 回复
  • 实际上是没有整体缓存的,都是重新计算,缓存的是底层一点的 blocks 😂

  • fangly

    换了 WiFi 4g 5g,还是一样的问题,下载到一半后断开,然后又要从零开始下载

    1 回复
  • 上面显示有多少文件,我这里测过接近 2W 的没问题,另外报错还是刚刚那个吗?

    1 回复
  • fangly

    一万三千个文件,报错一样:

    image.png

    1 回复
  • 实现上服务端应该不会有导致 connection reset by peer 的报错,我觉得可能还是客户端的问题,有用什么代理程序么或者网络相关的特殊配置么?

    1 回复
  • fangly

    我手机上应该没开代理程序也没做过网络相关的特殊配置

    除了 connection reset by peer 之外还会有别的报错:

    image.png

    1 回复
  • 麻烦再打包一下内核日志上传。

    1 回复
  • fangly

    卸载重装过几次,只剩下晚上的了:

    siyuan.zip

    1 回复
  • 收到,谢谢。

  • 下个版本调整了下文件服务的网络架构,应该会对这个问题有所改善 Issue #4464 · siyuan-note/siyuan 请更新后继续帮忙测试看看,感谢老铁。

请输入回帖内容 ...

推荐标签 标签

  • 安全

    安全永远都不是一个小问题。

    199 引用 • 816 回帖 • 1 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 1 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 175 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    6 引用 • 38 回帖
  • 书籍

    宋真宗赵恒曾经说过:“书中自有黄金屋,书中自有颜如玉。”

    77 引用 • 390 回帖
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 19 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖 • 1 关注
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    75 引用 • 1737 回帖 • 5 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • sts
    2 引用 • 2 回帖 • 196 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 62 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 764 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 2 关注
  • 友情链接

    确认过眼神后的灵魂连接,站在链在!

    24 引用 • 373 回帖
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 411 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    21 引用 • 245 回帖 • 241 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1327 回帖
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    107 引用 • 295 回帖
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 9 关注