G4.02.3degrade dead deep links to nearest live level设计研究

深链接失效时需降级到最近可用层级

别名: 深链接失效降级 · dead link fallback · 断链就近 · graceful deep link

概念解释

收藏、邮件、广告和分享出去的 deep link 比它们指向的对象活得长。对象被下架、改名、合并、权限收紧之后,链还在。降级到最近可用层级是说:打不开这个目标节点时,不要停在空白 404 或把人丢回首页,而是落到仍然存在、且仍能解释「你本来要来的是这一支」的最近祖先——该类目、该文件夹、该用户的内容墙。失效被承认,位置感被保住。

机制

深链接是一份过期会作废的坐标。叶没了,坐标里仍可能有还能用的前缀:/shop/chairs/oak-42 里椅子类目还在。人点开链是冲着那个对象去的,对象没了不等于任务取消——常变成「同类还有没有」「这个作者还在不在」。空白错误页切断的是整条意图;首页切断的是位置,人必须重新觅食。最近可用层级把意图收束到仍有效的斑块,信息气味还在。

降级也是信任问题。链是别人或过去的自己发出的,打不开会被读成「链接骗我」或「产品丢了东西」。落到能叫出名字的祖先,并写明叶为什么不在了(下架、无权限、已合并到另一条),失败被解释成世界变了,而不是导航坏了。静默重定向到一条「相似」的别的叶会更糟:人以为到了原来那条,用错误对象做决定。

怎么研究

准备同一条深链的四种死后页面:空白 404、全站首页、父级类目加一句原因、自动跳到推荐的另一叶。任务是「打开这封邮件里的链接,处理这件事」。

  • 自变量:降级目标、是否说明失效原因、是否自动跳到别的叶。
  • 因变量:是否继续在同一支下完成替代任务、错误对象上的误操作、把失败归因为「链接坏了」还是「东西没了」。
  • 方法论注意点:实验室里的 404 文案往往被写得很友好,现场的 404 常常是通用模板;要用产品真实的错误页,不要用研究专用的说明页。权限失效和对象删除要分开,前者的最近可用层级可能是「申请访问」,不是类目。

边界

叶被合并到唯一合法的新地址时,应 301/永久重定向到那一条,而不是停在旧类目——最近可用已经变成新叶本身。法律或安全要求「此资源不可承认其存在」时,降级到父级会泄露它曾经挂在哪,只能给通用的无权限页。站点根就是最近可用层级的那种单层产品,降级等于回首页,这时至少要留下搜索框和失效说明,不要假装成一次正常进入。

怎么落地

  • 解析深链时沿祖先链逐级查存活:叶不在则父级,父级不在则再上一层,直到第一个可显示的节点;同时记下失效原因。
  • 落地页标题和正文承认「原来的对象不可用」,给出原因和在本层继续的动作(浏览同类、搜索、申请权限),不要自动换成另一条具体对象。
  • 对已改地址的叶做永久重定向,把降级留给真正消失或不可见的对象。
  • 验证:把一条已删除对象的旧链、一条无权限的链、一条已改 URL 的链发给未参与设计的人。删除应落到父级并看到原因;无权限应看到申请而不是类目里的邻居;改址应打开新叶而不是父级。停在通用 404 或首页的,降级失败。

延伸

  • 同组G4.02.1 深链接可能跳过中间层级 · G4.02.2 需要为深链接构造合理的返回路径
  • 相邻G1.07 内容清单与审计 · T3.03 内容的时效与维护 · E6.06 空状态
  • 站内检索dead deep link · graceful degradation · nearest live ancestor

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/G4.02.3