我有一个我在 phototshop 中制作的 gif(一个加载轮),但我发现我使用它的方式(隐藏然后用 css 显示,然后用 javascript 重写)开始时太迟钝了,真的一开始很难跳过。所以我决定在调用它之前缓存图像。所以我就是这样做的:
function preloadImages(array) {
for (var i = 0; i < array.length; i++) {
var img = new Image();
img.src = array[i];
preloadImages.list.push(img);
}
}
var imageURLs = [
"loading.gif"
];
如果我没记错的话,哪个应该起作用。但以防万一我也尝试过:
loading = new Image(60,60)
loading.src = "images/loading.gif"
我从教程中提取的。现在,当我实现这个(当前是第一个)然后稍后正常调用图像时,它似乎运行得更快,我可以在我的缓存中看到它。然而,作为持怀疑态度的人,我决定放入一个我从未在 HTML 中使用过的图像,看看它是否被缓存(因为它应该被缓存),然后永远不会调用它。所以这是我的新JS:
function preloadImages(array) {
for (var i = 0; i < array.length; i++) {
var img = new Image();
img.src = array[i];
preloadImages.list.push(img);
}
}
var imageURLs = [
"loading.gif",
"today.gif"
];
请注意,我现在添加了today.gif
,如果我对缓存的理解是正确的,那么即使我从未在“原始”HTML 中调用它,该图像现在也应该被缓存,对吗?好吧,它不是。这让我想知道加载 gif 是否被缓存,或者我的浏览器是否只是决定合作一下。有任何想法吗?这是使用第二个 JavaScript 片段重新清除后重新加载缓存的样子:
所以这里的问题是:它是否工作,即使缓存说它不是?我在想象事情吗?我这样做是否正确/我对本地缓存的理解是否正确?如果没有,有人可以向我解释我哪里出错了吗?干杯。