Javascript 使用尽可能多的独立线程检索5个图像-jquery ajax

Javascript 使用尽可能多的独立线程检索5个图像-jquery ajax,javascript,jquery,Javascript,Jquery,考虑以下几点: 使用ajax调用和json,使用5个单独的线程检索5个图像。 每次图像检索时,结果应填充视图 呼叫返回 所有这些都将在本地完成,我计划使用jQueryAjax方法从json文件检索这些图像 我需要理解“使用5个单独的线程”检索这些图像意味着什么。这将如何影响我的ajax调用?代码可能是什么样子的?单独的线程是否表示单独的ajax调用 感谢您的帮助。浏览器环境中的JavaScript只支持通过WebWorkers执行线程,而WebWorkers本身无权访问DOM树 所有其他类型的并

考虑以下几点:

使用ajax调用和json,使用5个单独的线程检索5个图像。 每次图像检索时,结果应填充视图 呼叫返回

所有这些都将在本地完成,我计划使用jQueryAjax方法从json文件检索这些图像

我需要理解“使用5个单独的线程”检索这些图像意味着什么。这将如何影响我的ajax调用?代码可能是什么样子的?单独的线程是否表示单独的ajax调用


感谢您的帮助。

浏览器环境中的JavaScript只支持通过WebWorkers执行线程,而WebWorkers本身无权访问DOM树

所有其他类型的并发都由基于事件的模型“模拟”。由于从WebWorker启动XMLHttpRequest实际上没有意义,所以您所能做的就是进行单独的异步AJAX调用,并在相应的事件处理程序中处理编码的图像数据(然而,在JSON文件中编码图像数据对我来说没有多大意义,除非您有一个非常特殊的应用程序。但这就是我理解您的问题的方式)

编辑: 关于如何实现这一点的一个简单示例,考虑到您只想检索图像路径并将其分配给ID为“img0”-“img4”的图像标记,您可以使用jQuery编写以下代码:

for (var i = 0; i < 5; i++) {
    jQuery.ajax(
        {
            'async': true,
            'url': 'imagePath.json?idx=' + i,
            'context': {'idx': i}
        })
    .done(function (data) {
        $("#img" + this.idx).attr('src', data.path);
    });
}
for(变量i=0;i<5;i++){
jQuery.ajax(
{
“异步”:true,
'url':'imagePath.json?idx='+i,
'context':{'idx':i}
})
.完成(功能(数据){
$(“#img”+this.idx.attr('src',data.path));
});
}

听起来像是一个学校的问题,你打算如何将图像存储在json文件中?你可能指的是文件路径。你应该使用Webworkers吗?@KevinB:没错,我指的是文件路径。“使用5个单独的线程”这是一种非常糟糕的解决问题的方式。由于javascript是单线程的,而不是webworkers的使用,所以它都是在一个线程上完成的。不要想太多,只需加载图像。加载图像只有一种方法,那就是创建图像,并将其src设置为图像路径(除非你考虑使用Ajax来加载图像数据。)你会说,根据我所提供的报价,在“5个单独的线程”上加载图像的要求是没有意义的吗?是的,因为JavaScript通常没有线程,如果你读它的话,任务是有意义的。“使用ajax调用和json,使用5个单独的异步请求检索5个图像路径“如果可以的话,我想看一个例子,不是一个完整的脚本,而是一个使用jquery ajax方法的5个独立异步请求的基本结构。我的经验是只需进行一次ajax调用,引入所有图像,然后将其公开给视图。
for(var I=0;I<5;I++)jquery.ajax({'async':true,'url':'imagePath.js?idx='+i,上下文:{'idx':i}).done(函数(数据){$(“#img”+this.idx).attr('src',data.path);})
注意,
异步:true
可以省略,这是它的默认值。