2011-08-22 107 views
1

我已经构建了一个Javascript重载的Web应用程序,最近调整了它在iPad上工作(它需要调整,因为它允许通过移动鼠标来绘制,而onmousedown/onmousemove不会得到触发直到手指释放)。移动Safari浏览器第一次崩溃页面加载

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

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

这使我对几个可能的结论:

A.)即使部分CSS修复我做没有实际帮助,但不知何故,我得到了非常幸运,并没有看到崩溃,重装我的应用程序并重新启动iPad的多次(然后崩溃可能与我的JS代码或页面的其他部分的某处)

B.)我介绍了一些其他问题时更改我的图标的其余部分通过CSS加载(如果是这样的话,我wouldn'预计重新加载页面来解决问题,但它)

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

D.)iPad扼流器,当试图一次渲染/解压缩那么多的Javascript(我还没有听说过这是一个问题,但也很少看到一大块的Javascript这个大)

有谁知道除了6MB的图像限制之外还有什么其他问题可能导致移动Safari首次加载页面时崩溃,但不是第二次?

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

谢谢

回答

0

你需要记住的是,与你的桌面相比,iPad是严重不足的。它在记忆上特别有限。我马上注意到页面上有很多很多的脚本块。不要把你的应用程序完全分开,试着找到你可能开始合并的罪魁祸首,只是为了看看它是否处理那些导致崩溃的节点。

相关问题