我正在使用deck.js (http://imakewebthings.com/deck.js/) 重新创建公司的PowerPoint 演示文稿,使用了相当多的CSS3 动画和Javascript。
在我的 wifi-only iPad2 上通过开发进行测试很好,但是在 wifi+3G iPad1、2 和 3 上检查页面在页面加载时会导致 Safari 崩溃(iPhone 4S 可以正常工作)。
一些基本的调试(一张一张地删除幻灯片)表明它是 DOM 的大小导致崩溃,因为当我将演示文稿从 31 张幻灯片减少到 21 张时它工作正常。
页面的总大小约为 4.3MB,我尝试使用 appcache list 无济于事。
我在各种论坛上看到很多人遇到 iOS 5.1 Safari 崩溃的问题 - 有没有人遇到过 iPad 3G 模型在复杂 DOM 的压力下崩溃的经历?
任何想法和建议都非常感谢。
最佳答案
事实上,这似乎是这样的设备上的 deck.js 的限制。 Martin Fowler 报告了同样的问题并最终以增量方式加载幻灯片作为解决方法 (http://martinfowler.com/bliki/Infodeck.html)。
查看问题是来自加载 DOM 还是来自显示它会很有帮助(默认的 deck.js 主题未针对显示效率进行优化)。不幸的是,我无法测试,因为我没有 ipad,但我建议尝试隐藏所有幻灯片,看看是否仍然存在崩溃。一些 CSS 代码可以做到这一点:
.deck-container > .slide:not(.deck-current), .deck-container > .slide:not(.deck-child-current) { display: none; }
关于iPad(仅限 3G 机型)Safari 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10295951/