Jac*_*sse 10 iphone safari mobile-safari ios ios8
加载网站时会发生什么事情的例子可以在这里看到theverge.com.最新的浏览器和操作系统版本没有出现此类问题:
但是,在两个单独的iPhone 4S设备(iOS 8.0.2和iOS 8.1.2)上,Safari将继续刷新页面,每次阅读"此网页出现问题以便重新加载",直到最终崩溃并阅读"问题"反复发生在[网站网址]".我已经确保我的JavaScript/jQuery在语法上是正确的(以及在Safari设置中关闭JavaScript加载网页 - 同样的问题),清除缓存,重新启动iPhone并且无法想象还有什么可能导致问题.网页很小,总文件大小约为300kb,只有一些相当简单的DOM操作.
从我自己的测试和我所读到的内容来看,这个问题与iOS 8.0.2和8.1.2相关,但显然,我的网站是少数几个在操作系统上崩溃的网站,我想知道究竟是什么导致了这个问题.
谢谢.
编辑:将其中一个iPhone更新到iOS 8.3 - 问题仍然存在.绝对难倒在这一点,任何建议将不胜感激.
Eva*_*huk 12
简答:
检查所有CSS的动画关键帧并删除font-size
这些块中的所有动画.
答案很长
缺乏任何以开发者为中心的关于"A问题反复发生......"问题的对话肯定令人失望.今晚在谷歌搜索了一个小时之后,我在这里偶然发现了你的帖子,当我看到时间戳时不得不做双重拍摄.// High five fellow trouble-shooter.
幸运的是,我能够在我的CSS中找到这个iOS/Webkit错误的潜在来源.具体来说,它似乎与Safari如何处理font-size
CSS内部的动画有关keyframes
.我的SASS里有这样的东西:
@-webkit-keyframes labels-bottom {
0% { opacity: 1; color:#888888; top: 0.1em; font-size: 1.5em; }
20% { font-size: 1.5em; opacity: 0; }
30% { top: 0.1em; }
50% { opacity: 0; font-size: 0.85em; }
100% { top: 4em; opacity: 1; }
}
Run Code Online (Sandbox Code Playgroud)
当我删除整个块时,它开始工作.
当我进一步逐步删除CSS属性时,崩溃似乎与font-size
动画隔离.但是,它似乎与@font-face
Web字体无关,或者您使用不同的单位(em/px/pt)指定大小.所有测试条件都导致同样的崩溃.修复它的唯一方法是删除我的关键帧块中的任何字体大小更改,a:
@-webkit-keyframes labels-bottom {
0% { opacity: 1; color:#888888; top: 0.1em; }
20% { opacity: 0; }
30% { top: 0.1em; }
50% { opacity: 0; }
100% { top: 4em; opacity: 1; }
}
Run Code Online (Sandbox Code Playgroud)
有可能(也许可能)其他动画属性可以触发崩溃,但这个修复肯定对我有用,我希望它也适合你.
PS:我在iOS 8.1.2和8.3(iPad)上测试了这个.
受到@Evan Tishuk的回答的启发,我通过我的CSS搜索,但发现与他不同,我没有字体大小的关键帧动画.通过消除过程,我开始删除代码块,从那些带有供应商前缀的代码开始,发现这是导致问题的代码:
.qanda{
filter: blur(0px);
-webkit-filter: blur(0px);
-moz-filter: blur(0px);
-o-filter: blur(0px);
-ms-filter: blur(0px);
filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius='0');
}
Run Code Online (Sandbox Code Playgroud)
我很傻.我的网站甚至不需要模糊过滤器,只是我正在玩的一些代码,忘了删除.
除了所有指向CSS的其他答案之外,我还可以报告JSON数据对象的复杂JavaScript操作也会导致此错误.具体来说,将一个大的预先计算的搜索索引(一个~1MB或更大的JSON文件)加载到一个页面以便与lunr.js一起使用将会出现上述故障.
我认为这可能是因为服务器端压缩(1MB JSON数据传输压缩大约200kB)但是在禁用压缩后错误仍然存在,因此我只能假设在解析JSON数据时Safari内部发生了问题.
有趣的是,我可以从JSON文件加载原始搜索数据(大小与导致崩溃的索引数据相当)并在浏览器中构建Lunr搜索索引 - 只是无法从JSON文件加载预先计算的搜索索引.
归档时间: |
|
查看次数: |
9206 次 |
最近记录: |