光明日报
JavaScript 更适合需要显示剩余时间、执行其他操作后再跳转的页面。下面的示例会等待 3 秒,然后使用浏览器当前页面替换为目标页面。
如果业务要求用户看到提示页后再离开,推荐让服务器先正常返回提示页,再由 HTML 或 JavaScript 延迟跳转。不要为了制造 3 秒等待而让服务器线程停留 3 秒,这会增加响应占用,也可能让移动网络下的用户误判页面无法打开。
排查3秒钟自动跳转网页失败时,应先确认代码是否被浏览器正确解析,再检查目标路径、缓存🌅和安全策略,不要一开始就重复修改延迟数字。
HTML 的 meta refresh 是实现定时跳转最直接的方案,代码应放在当前网页的 head☀️ 区域,而不是随意插入正文内容中。
JavaScript 中的 3000 代表 3000 毫秒,也就是 3 秒。window.location.replace() 会用新页面替换🎇当前历史记录,用户点击浏览器后退按钮时,通常不会反复回到跳转页。
如果页面需要显示倒计时、根据条件决定是否跳转,或者希望控制浏览器历史记录,则应改用 JavaScript。需要永久迁移页面时,不建议单纯等待 3 秒,而应优先使用服🍀务器端的 301 或 308 响应。
如果目标页面名称包含特殊字符、空格或非标准编码,建议先改用简洁的英文文件名和短路径,以降低不同浏览🎇器解析路径时出现差异的概率。
服务器端重定向会在浏览器收到响应时立即改变页面地址,因此 301、302、307、308 本身并不负责等待 3 秒。服务器端方案更适合页面已经永久搬迁、域名更换或路径调整的情况。