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();
});
标签 :

相关文章

高效开发:如何用小工具提升生产力

在开发过程中,提升效率一直是开发者关注的重点。如何在有限的时间内完成更多的工作?在日常工作中,工具的选择与合理的使用往往能够大大提升开发效率。

查看更多

个人网站技术选型:使用 Hugo 快速搭建站点

本文详细介绍了使用 Hugo 搭建个人网站的过程,涵盖了技术选型、渲染方式和模板选择等方面,适合对个人博客建设感兴趣的读者参考。

查看更多

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

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

查看更多