Vue: iOS Safari 呈现空白页面

创建于 2017-04-27  ·  35评论  ·  资料来源: vuejs/vue

版本

2.2.6

转载链接

https://gist.github.com/cherry-geqi/68b3b83491394851f94d8364ab099a83

重现步骤

  1. 滚动列表页面超过屏幕高度的距离
  2. 单击一个单元格并导航到详细信息页面
  3. 返回并查看空白页面
  4. 滑动列表页面,内容显示

什么是预期?

完整的内容列表

实际发生了什么?

没有内容的空白页面,直到您在页面上滑动


在 iOS Safari 上重现(在 iOS 10.3.1 上测试)。
即使它使用相同的引擎,也适用于 iOS 版 Chrome。

最有用的评论

@cherry-geqi 我在数据获取后添加了以下代码:

this.$nextTick(() => {
      window.scrollTo(0, 1)
      window.scrollTo(0, 0)
})

至少我们的测试团队很满意。

所有35条评论

即使我无法重现,这显然是 Safari 的后退缓存的问题,而不是 Vue 本身的问题。

那我们应该关闭它吗?
@cherry-geqi 下次确保提供交互式复制和可编辑复制,比如 jsfiddle 🙂 它真的有帮助,甚至更多的移动问题

很抱歉,但我无法提供 jsfiddle 重现,因此可能需要更多步骤来重现。 要点是至少完整的要点。 要重现,请下载 gist,然后将其放在python3 -m http.server等临时服务器的根目录下,然后从 iOS Safari 请求。

在我的设备中,它几乎是 100% 的回购。

这是一个截屏:
空白页repro.zip

这可能是 Safari 的问题,但我们应该提供一个解决方法,对吗?

我认为这实际上是因为……您每次导航到家时都在重新获取数据。 您应该使用存储来缓存获取的数据。

恐怕不是。 也许我没有说清楚,但这确实是一个致命的问题,只在 iOS Safari 上重现。 当我返回时,页面保持空白,直到与之交互。 加载数据并构建 DOM。 这更像是浏览器渲染错误,但我们可以做些什么吗?

无法使用您提供的确切代码在 iOS 10.3.1 上重现。

这是 100% 的再现。 滚动列表页面(重要!)并导航到详细信息页面并返回。 我至少已经为此工作了 20 个小时。

你的iOS版本?

iOS 10.3.1 以及微信 6.5.7,因为它从 6.5.6 开始切换到 WKWebview。

你应该提到 - Safari 不是 WKWebView。

在 iOS Safari 上重现。

是的。 对于我的应用程序,这个问题在 ios(至少是微信、Safari)上也可以 100% 重现。 Vue 2.3.3。

@Centaur你找到解决方法了吗?

@cherry-geqi 我在数据获取后添加了以下代码:

this.$nextTick(() => {
      window.scrollTo(0, 1)
      window.scrollTo(0, 0)
})

至少我们的测试团队很满意。

是的,你解决这个问题了吗? @cherry-geqi

@ppxialetsgo通过@Centaur只是作品所提供的解决方法。 这显然不是个案。 我建议 vuejs 团队对此多加注意。 @yyx990803 @posva

+1 完全一样的问题。

100% 转载于 iOS 9/10/11 + 微信(WKwebview)/safari。 无法在微信的UIWebview中重现。

上述解决方法对我们有用。

我们正在考虑将 Vue 用于我们的新项目,但该线程似乎与我所看到的非常相似。 我们的主要用户不会使用最新的手机,我看到示例 Vue 应用程序根本无法在 IOS (7.1.2) Safari => IPHONE-4 上呈现。

再生产:
这里的vue demo在IOS 7.1.2上不渲染
https://lucasleandro1204.github.io/vue-content-loading

但是等效的 React 组件可以:
https://danilowoz.github.io/react-content-loader/

请指教。

我也有同样的问题

我也有同样的问题。

我也有同样的问题。

这实际上是一个与 Safari 而不是 Vue 相关的问题,查看这个与 Vue 无关的演示

伟大的! @javoski的演示表明该问题与 Vue 无关,而是与 Safari 相关。

@Hao-Wu @javoski ,我不同意你的 Safari 部分,我在我的 Ipod touch 中尝试使用谷歌浏览器,它也呈现相同

@javoski 。 它在网络检查器中说你有一个错误,如图所示
screen shot 2018-01-06 at 10 48 52

似乎“勾号”没有正确读取

嘿伙计们,我有同样的问题。但现在我解决了我的问题。
我发现我的问题是由于 dom 树的结构

就我而言,有两个嵌套的 HTML 元素。

我认为这是因为这会使帧渲染错误。

我不知道我是否遇到了完全相同的问题,但我遇到了一个与此非常接近的问题。 我的解决方案是安装babel-polyfill 。 因此,对于未来在谷歌上搜索这个问题的人来说,这可能是一个有帮助的选项。

感谢您的解决方法@Centaur !!!
你节省了我几个小时的调试时间...谢谢兄弟。

同样的问题发生在反应上,如果元素使用“-webkit-overflow-scrolling: touch”,在我的情况下它不会在返回时呈现。

那么,除了滚动方法之外,最后如何解决问题? 我也遇到了反应的问题...
@cherry-geqi @Centaur @posva

虽然这个问题解决了,但我还是想说,这不叫ios问题,而就是vue的问题,如果你非要说是ios问题,那如果出了安卓的问题,是不是也不是vue的问题?那还有谁来用vue?
you are five

该问题在 Safari iOS 12 上仍然存在。

@Centaur修复工作,你只需要找到主要的滚动元素。 就我而言,它是 body 元素中的一个 div。

虽然这个问题解决了,但我还是想说,这不叫ios问题,而就是vue的问题,如果你非要说是ios问题,那如果出了安卓的问题,是不是也不是vue的问题?那还有谁来用vue?
你五岁

你是sjb?

vue中可以使用

scrollBehavior (to, from, savedPosition) {
    // return 期望滚动到哪个的位置
   return {y: 0}
  }
#我的问题是...

ios safari中的Vue,当右边滑回到home page ,页面会是空白的,然后显示上一页的内容,最后是home page

另外:不仅仅是回到home page有这个问题,其他页面也存在这种现象;

#我是怎么解决的

放弃Vue Transition ,emmm太难了

ef9ec

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

lmnsg picture lmnsg  ·  3评论

paulpflug picture paulpflug  ·  3评论

hiendv picture hiendv  ·  3评论

fergaldoyle picture fergaldoyle  ·  3评论

bfis picture bfis  ·  3评论