javascript同步执行

javascript synchronous execution

本文关键字:执行 同步 javascript      更新时间:2023-09-26

我是javascript的新手,正在尝试使用滑块。我的问题与下面的问题类似带回调的jquery.attr()?。如果流是同步的,不应该延迟显示直到源完全加载,而不是显示旧图像

$('.container').fadeOut(100, function(){
     console.log("before");
     $('.container > img').attr('src', 'image src');
     $('.container').show();
     console.log("after");
 });

在加载新映像之前,我可以在控制台中看到这两个日志。。有人能解释一下吗。。。请原谅,如果这个问题太天真了,我正在努力理解这个概念。。

调用$('.container > img').attr('src', 'image src');时,会向服务器发出加载映像的请求。加载图像需要时间,因此会出现延迟。

但如果你仔细观察,这条线执行得很完美。在加载图像之前看到控制台条目的原因是图像加载需要时间

javascript是同步的,但问题是设置src属性与显示图像不同。一旦设置了src,就可以调度浏览器开始加载图像,然后继续执行脚本。如果希望在加载图像后执行代码,则必须将调用附加到图像的onload事件。

在jQuery中使用加载函数:

$('.container > img').attr('src', 'image src').load(function(){
   // Stuff to do after the image has been loaded
});

使用加载图像时将触发的.load事件侦听器

$('.container > img').attr('src', 'image src').load(function(){
  $('.container').show();
});