Mobile Safari崩溃首次加载页面

时间:2011-08-22 18:33:04

标签: javascript ios ipad mobile-safari

我已经构建了一个Javascript密集的网络应用程序,并且最近将其调整为在iPad上工作(它需要调整,因为它允许通过移动鼠标进行绘图,并且onmousedown / onmousemove在手指释放之前不会被触发)。

现在,通过调整,该应用程序在Mobile Safari上正常运行。我看到了一个问题,但是,当我第一次尝试在iPad上加载应用程序时,它经常会崩溃Mobile Safari。但是,重新打开浏览器并刷新页面可以完美地加载应用程序并且它完全可用。经过一些研究后,我发现Mobile Safari崩溃的最常见原因是超过6MB的图片或通过Javascript加载的多张图片。我的应用程序仅使用图像作为图标,因此总图像大小实际上非常小(总共可能不到100KB),但我的JS代码是2.5MB未压缩和使用gz压缩350KB(这是我将它发送到客户端)。

我还读到,通过CSS加载图像可以避免由于图像大小限制而导致的崩溃。我认为这是值得一试,因为崩溃也可能是由于大量图像,而不仅仅是总图像大小。在使用CSS background-image属性更改我的一些图标后,崩溃似乎已经消失。我决定更进一步,调整所有其他图标以使用CSS背景进行渲染。在更改了我要使用CSS渲染的所有图像之后,突然之间的崩溃似乎又回来了。

这让我得出了几个可能的结论:

答案。)即使我制作的部分CSS修复实际上并没有帮助,但不知何故我非常幸运,并且在重新加载我的应用程序并重启iPad多次时没有看到崩溃(然后崩溃很可能是我的JS代码或其他地方部分内容)

B。)我在更改其余图标以通过css加载时引入了一些其他问题(如果是这种情况,我不会指望重新加载页面来解决问题,但确实如此)

C。)崩溃是由于我的Javascript中的某些东西与图像无关(但是为什么它在重新加载后加载并正常工作)

D。)当我试图一次性渲染/解压缩那么多Javascript时,iPad就会窒息(我还没有听说过这是一个问题,但是看到一大堆Javascript也很少见)

有没有人知道除了6MB图像限制之外的其他问题会导致Mobile Safari在第一次加载页面时崩溃,而不是第二次?

如果有帮助,这里是我的网络应用程序的链接(这是通过JS加载图像的旧版本):http://www.grafpad.com/grafpad/canvas/demo(它是用睡衣写的,这就是生成Javascript的原因)。

由于

1 个答案:

答案 0 :(得分:0)

你需要记住,与你的桌面相比,iPad的功能严重不足。它在记忆方面特别有限。我立刻注意到页面上有很多很多脚本块。没有完全拆开你的应用程序试图找到罪魁祸首你可以从组合开始,只是为了看看它是否正在处理导致崩溃的那么多节点。