如何一个接一个地缓冲图像?[在任何给定时间仅加载 1 个图像]
How to buffer images one after another? [only 1 image loads at any given time]
在此页面中,用户一次查看 1 张图片。右:下一张图片。左:上图。我正在尝试始终缓冲接下来的 20 张图像。一次一个。但我一直在失败。
以下代码在任何给定时间开始缓冲接下来的 20 个图像。
我希望它在任何给定时间缓冲下一个 1 张图像。我不希望它由于互联网连接不良而同时缓冲多个图像。
所以我试图获取"如果要缓冲的最新图像"完成加载的信息。以下代码应该已经工作。但事实并非如此。它"同时开始缓冲接下来的 20 张图像"。(假设 300 毫秒是 0,以便表达我的观点)
(如果您需要,我可以提供整个HTML文件,但它非常简单且简短,因此我认为不需要它)现在我只放置管理缓冲的部分。可能会有一些不相关的错误,因为我不断修改它,但与这个问题相关的逻辑应该没问题。
setInterval(function(){
var allLoaded = true;
for(var i=index; i<indexToLoad; i++){
$("#image"+i).onload = function() {
console.log("i am a noob");
}
$("#image"+i).onerror = function() {
console.log("be nice");
allLoaded == false;
}
}
if(allLoaded == true){
if(indexToLoad-index < 20)
indexToLoad++;
}
var imageId = "image"+indexToLoad;
if($("#" + imageId).length == 0) {
$('<img />').attr({src: links[indexToLoad], id: imageId}).appendTo('body').css('display','none');
//console.log("request" );
}
}, 300);
这里的互联网连接非常弱。所以我尝试一次只缓冲 1 张图像。但是当图像完成加载时,我希望它缓冲数组中的下一个图像。直到接下来的 20 张图像完全缓冲。
我是一个菜鸟,但我在这个问题上花了几个小时尝试了很多方法,但都失败了。我怎样才能实现我的目标?
任何帮助,不胜感激。谢谢!
问题的简单答案是使用映像加载事件来触发下一个映像的下载。开始使用 window.onload 事件缓冲图像。
var imgIndex = 0;
var imgIndexToLoad = 20;
var links = new Array(); //your src array
function BufferImage(){
if(imgIndex > imgIndexToLoad){
return;
}
imgIndex++;
var newImg = new Image();
newImg.onload = function(){
document.body.appendChild(this);
BufferImage();
};
newImg.id = imgIndex;
newImg.src = links[imgIndex-1];
}
window.onload = function(){BufferImage();};
相关文章:
- 客户端图像调整大小.任何已知问题
- 有人知道有没有jquery插件可以在图像上写文本,并让用户将其放置在图像内的任何位置
- 如何通过ajax php将图像上传到服务器本地目录,其中html表单haven't任何传统的提交按钮
- 防止图像拖动,但其他任何内容
- 是从画布获取图像数据的任何方法,从远程视频中提取
- 提交输入类型=“;图像“;到另一个servlet时,未能返回任何参数
- websocketapi-图像编码在客户端不产生任何图像类型
- 有没有任何方法可以使用joomla为图像添加描述!模态挤压盒
- 是否有任何事件在浏览器请求另一个资源(如图像)之前触发
- 任何比较两个不同位图图像并在javascript中检测不同区域的方法
- 单击图像不执行任何操作
- 仅发布图像文件或允许不发布任何文件
- 我无法在我的网站上获取任何图像或显示任何 URL 图像
- 是否可以在不使用任何 severside 脚本语言的情况下将图像上传到服务器文件夹
- JavaScript:Canvas.drawImage 不显示任何图像
- 是否可以使用任何 PHP 仅使用 jQuery 上传图像
- 如何一个接一个地缓冲图像?[在任何给定时间仅加载 1 个图像]
- 一种脚本,它从数组中随机加载图像,在查看完所有图像之前不重复任何图像
- 需要输出图像,具体取决于使用来自CharCode在javascript的输入框中键入的字母,任何想法
- Fancybox 加载,但不包含任何图像,即使我很确定图像在正确的位置