【发布时间】:2021-09-24 00:01:49
【问题描述】:
我正在构建一个包含图片库的 Angular 应用程序。基本上是一个图像和两个按钮,上一个图像和下一个图像。以下是此类画廊的一些非常简单的代码(无 Angular):
<html>
<style>
img {
display: block;
height: 300px;
}
</style>
<body>
<img id="img"></img>
<button id="prevB">Prev</button>
<button id="nextB">Next</button>
<script>
var arr = [
"https://firebasestorage.googleapis.com/v0/b/animaps-e8f7a.appspot.com/o/EugywRZ814yCMrMhopVF%2F3c.jfif?alt=media&token=d6ab88bc-5065-4dbc-ab9d-884a9af1380b",
"https://firebasestorage.googleapis.com/v0/b/animaps-e8f7a.appspot.com/o/4KzYH8gMDjhKHFrTIXlB%2F1c.jpg?alt=media&token=9cd7bed2-c645-408c-acd5-77fdd9370389",
"https://firebasestorage.googleapis.com/v0/b/animaps-e8f7a.appspot.com/o/ftGGK4Wj1ski8lJi1TRE%2F5a.jfif?alt=media&token=4a36d9c5-924f-4738-9851-cf057de74544",
]
var index = 0;
document.getElementById("prevB").addEventListener("click", () => {
index--;
document.getElementById("img").src = arr[index % arr.length];
});
document.getElementById("nextB").addEventListener("click", () => {
index++;
document.getElementById("img").src = arr[index % arr.length];
});
document.getElementById("img").src = arr[index];
</script>
</body>
问题一:为什么浏览器会多次下载同一张图片?每次我单击 Prev 或 Next 时,图像都会再次下载,即使它已经下载。有没有办法指示浏览器缓存(保存)下载的图像?
问题 2:有没有办法(Angular 特定或纯 JS)预加载整个图像列表?即在页面加载时下载所有图片,然后点击下一步立即看到下一张图片。
【问题讨论】:
标签: javascript angular image