Javascript 单页应用程序:在Safari OS X中使用滑动导航时可见闪烁

Javascript 单页应用程序:在Safari OS X中使用滑动导航时可见闪烁,javascript,safari,single-page-application,pushstate,Javascript,Safari,Single Page Application,Pushstate,我们有一个单页应用程序(使用主干网构建),它使用Backbone.Router处理路由/URL更改。当路由更改时,我们通常异步加载一些数据,然后呈现页面。这在所有浏览器中都能很好地工作,包括OSX上的Safari,同时使用后退/前进按钮。然而,在Safari中,向后或向前滑动(滑动时显示上一页)会在刚刚导航到的页面和刚刚离开的页面之间瞬间闪烁 给定页面A和B,示例流程为: 用户加载页面A 用户点击一个链接进入B页 用户刷回 刷卡时显示页面A 页面A重新加载并呈现其内容后,页面B瞬间闪烁 下面的

我们有一个单页应用程序(使用主干网构建),它使用
Backbone.Router
处理路由/URL更改。当路由更改时,我们通常异步加载一些数据,然后呈现页面。这在所有浏览器中都能很好地工作,包括OSX上的Safari,同时使用后退/前进按钮。然而,在Safari中,向后或向前滑动(滑动时显示上一页)会在刚刚导航到的页面和刚刚离开的页面之间瞬间闪烁

给定页面A和B,示例流程为:

  • 用户加载页面A
  • 用户点击一个链接进入B页
  • 用户刷回
  • 刷卡时显示页面A
  • 页面A重新加载并呈现其内容后,页面B瞬间闪烁
  • 下面的JS-Bin演示了这个问题:(编辑,因为路由处理会干扰JS-Bin的编辑链接)。如果路线处理没有延迟,(取消选中延迟框),则没有可见问题

    这是一只狩猎虫吗

    我们做错什么了吗

    有解决办法吗


    我有Safari 6.2,但这个问题最初是由Safari 7的人报告的。

    你有没有发现这个问题?3年后,同样的问题。你有没有找到解决办法?谢谢