iPhone Safari 刷新后出现空白页解决方案

  • 约339字
  • 技术
  • 2012年12月22日

这几天在做一个新网站,发现用 iPhone 的 Safari 浏览页面时,初次浏览页面都没有问题,但当手动点击刷新按钮,整个页面就变成白页。

先百度和 google 了一下,发现相关的结果不够解决问题。于是自己研究了一下,空白页出现有下面几个特征:

  • 不刷新页面,点击链接页面都正常
  • 刷新页面后出现空白页
  • 修改页面代码,比如加一个空格,再刷新恢复正常

页面没有修改返回的是 304,加一个空格后返回 200,看来问题就在这里。Safari 在手动刷新时没有正确处理 304 的结果(非手动刷新正常),chrome 和 IE 都没有此问题,看来应该是 safari 的 bug。解决此问题,临时解决方案只能是让服务器不返回 304,于是想到重置  Last-Modified 和  If-None-Match 。

我正在开发的网站用的是 nodejs & Express,针对我遇到的情况,简单的解决方案如下:

app.get("*", function (req, res, next) {
  var ua = req.header("user-agent");
  if (ua && ua.match(/safari/i)) {
    req.headers["if-none-match"] = undefined;
  }
  next();
});
标签 :

相关文章

力量练习训练基础和训练计划

为了增加肌肉,最近看了《超高强度训练法——42天长30磅肌肉》,把其中的基础篇训练方法和计划整理如下。

查看更多

日志分析还在逐行搜?AI分钟级定位问题

线上故障发生时,你还在逐行搜索日志?本文复盘一次真实的故障排查经历,分享如何用AI将日志定位时间从2小时缩短到10分钟,包含具体工具和操作步骤。

查看更多

尤雨溪宣布发布 VoidZero: 下一代 JavaScript 工具链

Vue.js 和 Vite 的作者尤雨溪宣布创立 VoidZero Inc.,致力于为 JavaScript 生态系统构建开源、高性能、统一的开发工具链,并成功完成由 Accel 领投的 460 万美元种子轮融资。

查看更多