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

相关文章

Git 常见命令总结

Git 是分布式版本控制系统,由 Linux 之父 Linus Torvalds 发起。和 svn 等版本控制的最大区别在于分布式,每个人在本地都有一份完整的代码历史库,在不联网的情况下就可以查所有历史并提交代码。

查看更多

习惯的培养

今年春天突然意识到日渐凸起的肚腩,看到拥有健硕身材的人就羡慕不已,于是决定开始健身。 在头一两个月确实也坚持的不错,看到了小腹在悄悄的下去,肌肉在有节奏的生长,力量在渐渐的加强,从一个引体向上都困难到能一口气做10个。

查看更多

高效开发:如何提升代码质量与开发效率

高效开发不仅意味着快速完成任务,更在于确保代码质量和可维护性。本文探讨了明确需求、选择技术栈、遵循代码规范、使用自动化工具、团队协作和持续学习等方面的实践,帮助开发者在短时间内产出高质量代码。

查看更多