直接答案:25 站中有 23 站成功抓取 127 个 JS/CSS 资源(65 JS、62 CSS),共 4,864 条注释、1,599.7 KB(约 1.56 MB),约为上一期 25 个首页 HTML 注释(900 条、29.1 KB)的 55 倍。6 站 8 条带 sourceMappingURL、4 站 13 条 TODO、14 站 67 条 license、22 站 74 条版本号、23 站 61 条长注释;邮箱、本地路径/内网主机与作者标记均为 0。E18、E20 两个站没有取到资源,单列排除,不计为 0 注释。
资源配置只有每站前 3 个 CSS 与前 3 个 JS;更完整的资源清单见首页资源清单 pilot。
方法:每站前 3 个 CSS 与前 3 个 JS
2026-11-09 03:40–03:41,对第 4 期 25 个缓存 200 首页先取 HTML,再从 <link rel="stylesheet"> 与 <script src> 中各取前 3 个地址,实时下载文本并提取注释。/* … */ 全部计入;JS 的 // … 行注释计入,但排除 http:// 这类被冒号前缀的斜杠。
| 口径 | 判定 | 边界 |
|---|---|---|
| 注释 | CSS 的块注释;JS 的块注释与行注释 | 文本近似,不是 JS 解析器 |
| sourceMappingURL | 注释中出现 sourceMappingURL= | 不下载 .map 文件 |
| license | @license、copyright、licensed under、MIT/Apache/BSD License | 属合规声明,不建议删除 |
| TODO / 版本号 | TODO/FIXME/XXX/HACK;@version、version、v1.2 | 字面匹配 |
| 长注释 | 单条超过 300 字符 | 按字符数近似体积 |
结果:注释体积是 HTML 的 55 倍
| 指标 | 数量 | 站点数 |
|---|---|---|
| 资源(JS / CSS) | 127(65 / 62) | 23 |
| 注释 | 4,864 | 23 |
| 注释体积 | 1,599.7 KB | — |
| sourceMappingURL | 8 | 6 |
| TODO / FIXME | 13 | 4 |
| license | 67 | 14 |
| 版本号字样 | 74 | 22 |
| 长注释(>300 字符) | 61 | 23 |
| 邮箱 / 本地路径 / 作者标记 | 0 / 0 / 0 | 0 |
和 HTML 注释对照
| 口径 | HTML(上一期) | JS/CSS(本期) |
|---|---|---|
| 单位 | 25 个页面 | 127 个资源(23 站) |
| 注释条数 | 900 | 4,864 |
| 注释体积 | 29.1 KB | 1,599.7 KB |
| 邮箱 | 8 条 / 7 站 | 0 |
| 本地路径 / 内网主机 | 4 条 / 1 站 | 0 |
| TODO | 0 | 13 条 / 4 站 |
| 版本号 | 0 | 74 条 / 22 站 |
| license | — | 67 条 / 14 站 |
| sourceMappingURL | — | 8 条 / 6 站 |
体积集中在少数站:E28 337.4 KB(1,637 条)、E25 223.7 KB(只有 4 条)、E04 133.2 KB(957 条)、E29 97.2 KB(6 条)。5 个站各约 83 KB 但只有 11–16 条注释(E03、E09、E14、E22、E23),形态高度相似,像是同一个第三方包的大段声明。可见“条数少”不等于“体积小”:E25 的 4 条注释平均超过 50 KB。
风险项与 HTML 不同:资源里没有邮箱、没有内网路径、没有作者标记,但出现了 8 条 sourceMappingURL 与 13 条 TODO。source map 能把压缩代码还原成源码结构,是否公开应由发布策略决定;TODO 则暴露未完成项。license 与版本号更多是第三方库的常规声明,不应一刀切删除。
对验收的启示
- 去注释先做资源。 1.56 MB 对 29.1 KB,资源注释是体积大头;压缩与去注释的收益也在这里。
- 明确 sourceMappingURL 策略。 6 站 8 条;公开 source map 等于公开源码结构,生产环境默认不暴露更稳妥。
- 保留 license 注释。 14 站 67 条属合规声明;去注释时保留
/*!开头的块与许可证文本。 - 发布前清理 TODO 与版本号。 13 条 TODO 分布在 4 站,版本号 74 条;前者是未完成项,后者可辅助指纹识别。
- 检查共享组件的大注释。 5 站各约 83 KB、形态相似,优先确认是否是同一个包,再决定按需引入或换构建。企业官网验收可参考网站建设服务。
局限
- 资源配置有限:只取每站前 3 个 CSS 与前 3 个 JS,不是完整资源清单。
- 文本近似:行注释用正则排除
http://,但字符串里的//仍可能误计。 - 不下载 .map:只统计 sourceMappingURL 注释,不判断映射文件是否真的可访问。
- 两个站无资源:E18、E20 未取到可读资源,单列排除,不计为 0 注释。
- 25 站 pilot:同一批装备企业样本,不外推行业。
数据与复算
匿名数据:equipment-homepage-resource-comments-2026.csv(25 行 × 16 列:资源数、JS/CSS 数、注释数与体积、source map/TODO/license/版本/长注释计数与时间)。仓库内为 docs/research/2026-11-homepage-resource-comments.csv。
解析:scripts/resource_comment_probe.py;单元测试 scripts/test_content_resource_comment_probe.py(10 项,无网络)。运行:
python -m unittest scripts.test_content_resource_comment_probe
配套:首页源码注释审计(HTML 口径)、首页资源清单 pilot、首页 HTML 体积组成 pilot。
数据来源与口径
- 样本:第 4 期 25 个缓存为 200 的首页;23 站取到 127 个资源。
- 资源选择:每站前 3 个外链 CSS 与前 3 个
<script src>。 - 抓取:2026-11-09 03:40–03:41 Asia/Shanghai,串行,资源间 0.2 秒,超时 12 秒。
- 口径:块注释 + JS 行注释;sourceMappingURL、license、TODO、版本号、长注释按字面匹配。
常见问题
为什么资源注释比 HTML 多这么多?
主要是未压缩的库文件、许可声明与开发期注释。上期 25 个首页的 HTML 注释是 900 条、29.1 KB,本期 127 个资源的注释是 4,864 条、1,599.7 KB,约为前者的 55 倍。
sourceMappingURL 会暴露什么?
它指向 .map 文件,可把压缩代码还原成带文件名、变量名与结构的源码。本期 6 站 8 条;是否公开 source map 属于发布策略,不应默认暴露。
license 注释要删吗?
不要。许可声明是合规要求,去注释工具通常支持保留 /*! 开头的注释;本期 14 站 67 条,多数来自第三方库。
资源注释里没有邮箱,说明 JS 更安全吗?
只能说本轮抓取的 6 个资源里没有出现;每个站还有更多脚本与样式没有读取,不能推出“JS 更安全”。
E25 只有 4 条注释却占 223.7 KB,怎么解释?
单条超长:压缩产物里的大段法律声明或版权块。条数与体积必须分开看,这也是本期不按“条数”排序的原因。
数据能复核吗?
可以。公开 CSV 25 行 × 16 列;scripts/resource_comment_probe.py 有 10 项离线单测。