移动Safari首次崩溃的第一次页面加载
我已经构建了一个Javascript重载的Web应用程序,最近调整了它在iPad上的工作(它需要调整,因为它允许通过移动鼠标来绘图,并且onmousedown / onmousemove不会被触发,直到手指释放)。
现在,通过调整,该应用在移动Safari上运行良好。 但是,我看到一个问题,那就是我第一次尝试在iPad上加载应用程序时,经常会使Mobile Safari崩溃。 但是,重新打开浏览器并刷新页面可以完美地加载应用程序,并且完全可用。 在做了一些研究之后,我发现Mobile Safari崩溃的最常见原因是超过6MB的图片或通过Javascript加载的多张图片。 我的应用程序只使用图像的图标,所以总的图像大小实际上非常小(可能总计小于100KB),然而,我的JS代码是2.5MB未压缩和350KB使用gz压缩(这是我如何将它发送到客户)。
我还读过通过CSS加载图像可以避免由于图像大小限制导致的崩溃。 我认为这是值得一试的,因为它也有可能是由于大量图像造成的,而不仅仅是整个图像大小。 改变了我的一些图标,使用CSS background-image属性渲染后,崩溃似乎消失了。 我决定更进一步,调整所有其他图标以使用CSS背景进行渲染。 在改变了所有使用CSS渲染的图像之后,突然间崩溃似乎又回来了。
这导致了我几个可能的结论:
答)即使我所做的部分CSS修复实际上没有帮助,但不知何故,我非常幸运,看到没有崩溃,同时重新加载我的应用程序,并重新启动iPad多次(然后崩溃可能在某处与我的JS代码或其他部分页)
B.)当我改变其他图标以通过css加载时引入了一些其他问题(如果是这种情况,我不希望重新加载页面来解决问题,但它确实存在)
C.)崩溃是由于我的Javascript中与图像无关的东西(但为什么在重新加载后它会加载并正常工作)
D.)当试图一次呈现/解压缩那么多的Javascript时,iPad会窒息(我还没有听说过这是一个问题,但是看到一大堆Javascript这一点也很罕见)
有谁知道除了6MB图像限制之外还有什么其他问题会导致移动Safari浏览器第一次加载页面时崩溃,但不是第二次?
如果有帮助,这里是我的网络应用程序的链接(这是通过JS加载图像的旧版本):http://www.grafpad.com/grafpad/canvas/demo(它是用睡衣书写的,这就是为什么是如此多生成的Javascript)。
谢谢
你需要记住的是,与你的桌面相比,iPad的能力严重不足。 它在记忆上特别有限。 我马上注意到页面上有很多很多的脚本块。 不要把你的应用程序完全分开,试着找到你可能开始合并的罪魁祸首,只是为了看看它是否处理那些导致崩溃的节点。
链接地址: http://www.djcxy.com/p/49657.html