# 删除主题后无限滚动请求

**URL:** https://meta.discourse.org/t/infinite-scrolling-requests-after-topic-deletion/387045
**Category:** Bug
**Created:** [2025 年10 月 29 日 11:41 UTC](https://meta.discourse.org/t/infinite-scrolling-requests-after-topic-deletion/387045 "2025-10-29T11:41:28Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![TethysPlex](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tethysplex/32/520869_2.png) [@TethysPlex](https://meta.discourse.org/u/TethysPlex)
#### Post date: [2025 年10 月 29 日 11:41 UTC](https://meta.discourse.org/t/infinite-scrolling-requests-after-topic-deletion/387045/1 "2025-10-29T11:41:28Z")

</div>

继续讨论 [允许成员从跟踪偏好设置中删除受限标签/类别](https://meta.discourse.org/t/allow-members-to-remove-restricted-tags-categories-from-tracking-preferences/383004)：

### 概述

当用户正在积极查看一个随后被删除的主题时，连续滚动（向上或向下）会触发无限循环的 `posts.json` API 调用。这些调用持续返回 `403 Forbidden` 错误，但应用程序未能识别删除或停止加载不存在的内容，导致持续的后台网络活动和糟糕的用户体验。

### 复现步骤

1. **准备（管理员/版主用户）：**
  - 以具有主题删除权限的用户（例如，管理员或版主）登录。
  - 创建一个包含几篇帖子的新主题，以确保有内容可供滚动。
  - 记下该主题的页面 URL。

2. **用户体验（普通用户）：**
  - 以普通用户（无删除权限）登录。
  - 打开一个新的浏览器标签页或窗口。
  - 导航到步骤 1 中创建的主题。
  - 打开浏览器的开发者工具，切换到“网络”选项卡。清除任何现有请求以获得清晰的视图。

3. **同时删除和交互：**
  - 当普通用户_在主题页面上_（来自步骤 2）时，使用管理员/版主账户（来自步骤 1） **删除该主题** 。
  - 主题删除后，立即让普通用户尝试在已删除主题的页面上 **向上或向下滚动** 。

4. **观察：**
  - 在普通用户的浏览器“网络”选项卡中，观察到持续的 GET 请求被发送到 `https://discourse-url/t/xxxxx/posts.json?`（其中 `xxxxx` 是已删除的主题 ID）。
  - 注意到所有这些请求都持续返回 **`403 Forbidden`** HTTP 状态码。
  - 应用程序没有显示任何表明主题已被删除的消息，也没有停止发送这些失败的滚动请求。

### 潜在后果

- 在我的社区中，我们使用 Cloudflare 来防止网络攻击，此 bug 导致一些用户发送了过多的请求而被速率限制。

---

_[View the full topic](https://meta.discourse.org/t/infinite-scrolling-requests-after-topic-deletion/387045)._
