3 回答

TA贡献1757条经验 获得超7个赞
我从Steve Simitzis和Andrew的建议开始感到幸运。
我的项目:
基于PhoneGap的应用程序,具有6个主要部分以及大约45个子部分,这些子部分的jquery循环库包含2至7张图像,每张图像640 x 440(共215张以上图像)。最初,我使用ajax加载页面片段,但此后我切换到一页页面,所有部分都隐藏起来,直到需要为止。
最初,经过大约20个画廊之后,我得到了内存警告1、2,然后是崩溃。
在将所有图像都作为背景应用到div中之后,我可以在崩溃前通过应用程序中的更多图库(约35个),但是在以前访问过的画廊之后,它最终会失败。
似乎对我有用的解决方案是将背景图像URL存储在div的title属性中,并将所有背景图像设置为空白gif。对于215多个图片,我希望将url保留在html中的某个位置,以便于轻松和快速参考。
当按下子导航按钮时,我将css背景图像重写为div标题标签中包含的正确源,仅用于显示的画廊。这使我不必做任何花哨的javascript来存储正确的源图像。
var newUrl = $(this).attr('title');
$(this).css('background-image', 'url('+newUrl+')');
当按下新的子导航按钮时,我将最后一个图库div的背景图像重写为空白gif。因此,除了界面gfx之外,我一直都只有2-7张“活动”图像。对于添加的其他任何包含图像的内容,我仅使用此“按需”技术将标题与背景图像交换。
现在看来,我可以无限期使用该应用程序了,而不会崩溃。不知道这是否对其他人有帮助,它可能不是最优雅的解决方案,但它为我提供了解决方案。
添加回答
举报