我已经构建了一个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)。
谢谢