动态页面确认可见内容,不能只看浏览器里是否出现文字,而要把“服务器返回的HTML”“浏览器执行脚本后的DOM”“搜索引擎抓取时实际拿到的内容”分开核对。域名信息查询在这里的作用是确认你检查的确实是目标域名及其当前解析,而不是缓存、镜像或测试环境。验收时最可靠的做法是:先用抓包或查看源代码确认初始HTML,再用渲染工具确认执行后的DOM,最后对照页面可见区域,判断哪些内容依赖脚本、哪些内容能被直接抓取。
同一个动态页面,可能在三层里呈现不同结果。源码可见指服务器直接返回的HTML里就有这段文字;渲染后可见指浏览器执行JavaScript后,DOM里才出现这段文字;用户可见指它在视口内、没有被CSS隐藏、没有被弹窗遮挡。验收交接时,如果只截图给同事看,对方无法判断这段内容是服务端输出还是脚本注入。因此要留下可复查的证据:原始HTML片段、渲染后DOM片段、以及对应的网络请求记录。
动态页面常有多套环境,比如正式域名、测试子域、CDN回源地址。如果检查时域名不对,后面的结论都不成立。域名信息查询要核对的是:当前解析指向哪里、是否有CNAME到CDN、是否存在多条A记录轮询。这些信息决定你抓到的可能是边缘节点缓存,也可能是源站。判断方法是把解析结果与抓包得到的服务器IP对照,如果两者不一致,说明中间还有代理层,检查可见内容时要额外确认代理是否改写了HTML。
适用条件是:页面内容在本地正常、在别的网络或别的时间不正常。此时优先怀疑解析与缓存,而不是脚本本身。如果解析一致、抓包响应体也一致,问题就落在渲染或前端逻辑上。
短例子(假设场景):某商品价格在源码里只显示“加载中”,DOM里显示“¥99”。这说明价格由接口异步填充。如果验收要求是“不执行脚本也能读到价格”,该页面就不满足;如果验收要求只是“用户能看到价格”,则还需确认接口是否稳定、失败时是否有兜底文案。
把检查结果分成三类,交接时直接对应处理方式。第一类,源码和DOM都有,且用户可见,属于稳定可见,可以直接作为验收通过项。第二类,源码没有、DOM有,属于依赖脚本,需要说明依赖哪个接口或脚本,以及脚本失败时的表现。第三类,DOM有但用户不可见,属于被样式或交互隐藏,要确认这是有意设计还是缺陷。
还要注意两个边界:robots.txt限制抓取,不等于页面内容已从索引移除;站点地图提交也不保证收录。HTTPS同样不保证页面安全无漏洞。这些都不是判断“动态页面可见内容”的直接依据,验收时应回到HTML、DOM和实际渲染结果本身。
下一步建议:选一个目标动态页面,按上面的六步做一次记录,把“源码可见、渲染后可见、用户可见”三列填满。只要这三列能对齐,交接和验收就有了可复查的依据。