javascript - iOS 中使用 javascript 预加载图像

标签 javascript html ios cordova

场景

我使用两个图像,即“car-light.png”和“car-dark.png”。当用户触摸图像(car-light.png)时,它会变成 car-dark.png。

这是我使用的代码。

<img src="car-light.png" id="car" ontouchstart="changeCar()">

在changeCar()中,我编写了这段代码

$("#car").attr('src','url(car-dark.png)');

问题

有没有办法通过预加载图像来加快速度?或者我是否对快速加载时间太过重视?如果是需要预加载的情况,下面的代码正确吗?

var img1 = new Image();
img1.src = "car-dark.png";

function changeCar(imgName) 
{
    document[imgName] = img1;
}

在 HTML 中

<img src="car-light.png" name="car" ontouchstart="changeCar('car')">

最佳答案

将其放在启动 JS 代码中的某个位置将预加载图像:

var img1 = new Image();
img1.src = "car-dark.png";

这将使图像位于浏览器缓存中,因此如果您稍后在页面操作中使用它,它将快速加载。您可以直接使用 img1 对象,但通常更容易使用 URL 并让浏览器从内存缓存中获取图像,如下所示:

<img src="car-light.png" id="car" ontouchstart="changeCar()">

function changeCar() {
    $("#car").attr('src','car-dark.png');
}

关于javascript - iOS 中使用 javascript 预加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005245/

相关文章:

ios - 在 XCode 中使用 Size Class 的正确方法是什么?

objective-c - UIDocument openWithCompletionHandler 成功返回 NO

javascript - 自定义数字输入

html - 如何在不使边框线变圆的情况下获得 CSS 圆 Angular ?

html - Canvas 元素未显示

ios - 嵌套 UICollectionViews 与 UIPageViewController

javascript - 如何模拟 Javascript `super` 以便定义 `new.target`?

javascript - 是否可以粘贴溢出的 HTML 元素?

javascript - 使用javascript将唯一对象插入到对象数组中?

html - 有没有人再为 Dublin Core 烦恼了?