XCode 5.1.1,iOS 7 SDK构建于安装了最新iOS 7的iPhone 4s上。一个应用程序,其唯一内容是从Node.js表达的Web服务器加载的UIWebView。
我正在使用此标准代码段来缓存图片(javascript):
for (var i = 0; i < imagesToPreload.length; ++i) {
var preload = new Image ();
preload.src = imageURLsToPreload[i];
preloadedImages.push(preload);
}
其中preloadedImages是全局数组。并且我已经加载了这些图像之后的一段时间以编程方式设置背景图像,其中包含该阵列中的一个图像(用于淡入淡出效果):
$(".behindBackgroundImageGraphics").css("background-image",background.css("background-image"));
我可以保证在代码段1中预先加载的图片的网址与完全相同与代码段2中的图片的网址相同。我甚至使用以下代码段验证图片对象是否具有持久性:
window.setTimeout(function () {
for (var i = 0; i < preloadedImages.length; ++i) {
alert("preloaded image size: "+preloadedImages[i].height+"x"+preloadedImages[i].width+"px");
}
}, 1000*60);
因此,图像对象被加载并保存在内存中,并且应该与加载它们的URL配对。我的UIWebview配置为在所有情况下首先从缓存中提取,它给出了8MB的内存缓存(方式绰绰有余),并且max-age = 3600被添加到响应的缓存控制头中此应用程序的所有图像加载请求(已验证)。
问题: 每次&#34; behindBackgroundImageGraphics&#34;设置了div的背景图像(在一分钟的时间内多次),它会向服务器发出针对该图像资源的新请求。发生这种情况后,警报会弹出并验证我仍然为同一个网址存储了一个图像。
我已经尝试了许多其他常见的解决方案,包括将所有背景图像加载到一个不可见的元素中(即使是在我绝望中可见的一个 - 我可以看到图像已加载)。有人知道问题,解决方案和/或解决方法吗?任何帮助将不胜感激。对不起,很长的帖子。