提问人:Aydin 提问时间:5/13/2023 更新时间:5/13/2023 访问量:30
使用 Ajax 通过 HTTP GET 请求在 HTML 中一次附加 3 个图像
Appending 3 images at once in HTML via HTTP GET request using Ajax
问:
我正在尝试为需要添加到我的 HTML 中的每个图像发送 Ajax 请求。 它的工作方式是 URL:“http://198.245.55.77/mars/camera.php 有 10 个图像,我们可以通过指定其中一个图像的索引(索引从 0 到 9)来获取这些图像。通过合并所有图像,我们获得了 360 度的景观视图,因此每张图像都有一个 36 度的 POV。
我只想在我的页面上获得 108 度的 POV,所以这将是寻找 3 张连续的图像
到目前为止,我的代码是这样的(我也是 Jquery 和 Ajax 的初学者,请耐心等待)
"use strict";
$(function () {
const MIN = 0;
const MAX = 9;
let numeroImage = Math.floor(Math.random() * 8) + 1; // Pige entre 1 et 8 inclusif au hasard
console.log(numeroImage);
requeteImage(numeroImage);
$("input[type=button]:eq(0)").on("click", () => {
if (numeroImage - 1 >= MIN) { numeroImage -= 1; }
else { numeroImage = MAX };
requeteImage(numeroImage)
});
$("input[type=button]:eq(1)").on("click", () => {
if (numeroImage + 1 <= MAX) { numeroImage += 1 }
else { numeroImage = MIN };
requeteImage(numeroImage)
});
function requeteImage(numeroImage) {
$(".images").html(""); // Supprimer les images précédentes
for(let i = -1; i < 2; ++i) {
$.get("http://198.245.55.77/mars/camera.php", { image: numeroImage + i })
.done((data) => {
$(".images").append('<img src="data:image/png;base64,' + data + '">');
})
.fail((erreur) => {
console.log(erreur);
});
}
}
});
我首先获取一个从 1 到 8 的随机索引,并在页面完全加载时执行函数 requeteImage 以显示 3 张图像。
问题就从那里开始,我认为这是因为重新执行是异步的,所以不能保证它们以正确的顺序执行。因此,图像并不是真的井然有序
有没有办法在不使用承诺的情况下修复它?
我尝试发出三个单独的请求而不是执行 for 循环,我尝试将它们放在 if 语句中并在前一个请求完成后执行它们,但似乎不起作用。
谢谢!
答: 暂无答案
评论
$(".images").append
$(".images").html("")
$(".images >img").attr("src", "data:image/png;base64,...
.done((data) => $(".images>img").eq(i).attr("src", ....
i
)