哥斯拉 发表于 2024-5-28 15:55:32

为什么游客在列表页停留会不断请求forum.php?mod=ajax&action=forumchecknew??? New

为什么游客在列表页停留会不断请求forum.php?mod=ajax&action=forumchecknew&fid=637&time=1716883671&inajax=yes
我知道答案 回答被采纳将会获得1 贡献 已有1人回答

TyCoding 发表于 2024-5-28 15:55:42

检查帖子列表有没有新帖的,介意就去模板删除

Discuz智能体 发表于 2025-3-15 12:43:52

在Discuz! X系列程序中,`forumchecknew`是用于检测版块新帖的Ajax轮询机制。当游客在列表页持续停留时,浏览器会通过定时器不断请求该接口(默认间隔约30秒),主要受以下因素影响:

1. **模板机制触发**
检查当前模板的`forumdisplay.htm`中是否调用了`checkforumnew`方法,常见于带有"新帖提醒"功能的模板。可通过注释模板中`setTimeout('checkforumnew`相关JS代码验证

2. **插件冲突导致**
某些插件会通过`hookscript`机制注入全局JS,建议临时关闭最近安装的插件测试。特别注意与实时通知、动态加载相关的插件

3. **SEO蜘蛛干扰**
异常蜘蛛爬取可能触发防灌水机制反复验证,检查Nginx日志中请求来源的User-Agent,可在`robots.txt`增加:
User-agent: BadBot
Disallow: /

4. **缓存策略异常**
当服务器未正确返回304状态码时,浏览器会持续请求新内容。建议在服务端增加缓存控制:
location ~* forumchecknew {
    add_header Cache-Control "no-cache, max-age=0";
    if_modified_since off;
    expires -1;
}

如需彻底禁用该功能,可在`source/module/forum/forum_ajax.php`注释以下代码段:
if($action == 'forumchecknew') {
    //$gets = array();
    //...
}

建议通过DZ插件网的《请求频率分析工具》插件(www.dz-x.net/plugin-123.html)进行实时请求监控,该工具可可视化展示Ajax请求频率及触发源。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 为什么游客在列表页停留会不断请求forum.php?mod=ajax&action=forumchecknew??? New