Javascript 为什么在Chrome中先加载confirm()函数?

Javascript 为什么在Chrome中先加载confirm()函数?,javascript,google-chrome,Javascript,Google Chrome,我想知道为什么在Chrome中,这一行: var quer = confirm("Deseja esta poltrona?"); 前一行之前的加载: imagens[i].src = "img/poltrona_selecionada.jpg"; 在Firefox上,te函数按顺序完美工作 这是我的职责: function selecionarPoltrona() { var imagens = document.getElementsByTagName("img"); f

我想知道为什么在Chrome中,这一行:

var quer = confirm("Deseja esta poltrona?");
前一行之前的加载:

imagens[i].src = "img/poltrona_selecionada.jpg";
在Firefox上,te函数按顺序完美工作

这是我的职责:

function selecionarPoltrona() {
    var imagens = document.getElementsByTagName("img");
    for (var i=0; i<poltronas.length; i++) {
        if (poltronas[i]) {
            imagens[i].src = "img/poltrona_selecionada.jpg";
            var quer = confirm("Deseja esta poltrona?");

            if (quer) {
                break;
            } else {
                imagens[i].src = "img/poltrona_disponivel.jpg";
            }
        }
    }
}
函数selecionarPoltrona(){
var imagens=document.getElementsByTagName(“img”);

对于(var i=0;i欢迎使用图像对象和
属性,并且浏览器将其安排为离线处理。您的代码将继续
  • confirm
    被触发,一切停止。在确认完成之前,您的选项卡中不会发生任何事情
  • 您单击confirm.Javascript再次运行,浏览器的图像源绑定再次运行
  • 经过X时间后,图像将完成下载、解析和最终渲染
  • 如果要在映像完成所有工作后运行某些代码,请执行以下操作:

    ...
    img.onload = function() {
      // the code you need to have run after the image finishes loading.
    }
    img.onerror = function() {
      // whatever we need to do if the image cannot load.
    }
    img.src = "..." // trigger the image loading attempt
    
    或者,使用现代而非1998 JS:

    ...
    img.addEventListener("load", function(evt) {
      // the code you need to have run after the image finishes loading.
    });
    img.addEventListeners("error", function(evt) {
      // whatever we need to do if the image cannot load.
    });
    img.src = "..." // trigger the image loading attempt
    

    欢迎使用图像对象和
    属性,浏览器会将其安排为离线处理。您的代码将继续
    
  • confirm
    被触发,一切停止。在确认完成之前,您的选项卡中不会发生任何事情
  • 您单击confirm.Javascript再次运行,浏览器的图像源绑定再次运行
  • 经过X时间后,图像将完成下载、解析和最终渲染
  • 如果要在映像完成所有工作后运行某些代码,请执行以下操作:

    ...
    img.onload = function() {
      // the code you need to have run after the image finishes loading.
    }
    img.onerror = function() {
      // whatever we need to do if the image cannot load.
    }
    img.src = "..." // trigger the image loading attempt
    
    或者,使用现代而非1998 JS:

    ...
    img.addEventListener("load", function(evt) {
      // the code you need to have run after the image finishes loading.
    });
    img.addEventListeners("error", function(evt) {
      // whatever we need to do if the image cannot load.
    });
    img.src = "..." // trigger the image loading attempt
    

    “之前加载”是指你在问为什么确认框在图像出现之前出现?确切地说,它只发生在Chrome上。有一种方法可以使图像在Chrome上加载之前就加载?不,它无处不在,你刚刚发现一个神奇的图像大小,使它不会在每个浏览器中出现。图像加载是异步的。通过“之前加载”,你是说你在问为什么确认框出现在图像出现之前?确切地说,它发生在Chrome上。有一种方法可以让图像在Chrome上加载之前加载?不,它发生在任何地方,你只是发现了一个神奇的图像大小,它不会在每个浏览器中发生。图像加载是异步的。“一切都停止了”这就是我的想法——我只是在深入研究规范,寻找一个可能的答案。比如说“暂停”,“如果必要,更新任何文档或浏览上下文的呈现或用户界面,以反映当前状态。”-我猜这意味着浏览器可以在那段时间内重新绘制图像,但可能只有在图像已经缓存的情况下。所有当前浏览器实际上都只是完全停止,主要是因为alert、prompt和confirm是JavaScript(有点像document.write)的古老风格遗留下来的这并不意味着要改变它们的行为方式——如果你想要一个好的非阻塞模式,现在有很多选择。哦,绝对是这样。关于
    警报
    本身——我不久前发现这只是一个可选的暂停!不能说我曾经遇到过一个浏览器,它不作为阻塞调用来实现,尽管有趣的是:technically
    窗口
    对象及其上的任何函数直到之前都不在任何规范中,所以它是“显然它需要…”和“天哪,为什么它仍然有/做…”的奇怪组合。今天=P“一切都停止了”这是我想的-我只是在挖掘规范中的潜在答案。说“暂停”,如有必要,请更新任何文档或浏览上下文的呈现或用户界面,以反映当前状态。“-我猜这意味着浏览器可以在那段时间内重新绘制图像,但可能只有在图像已经缓存的情况下。所有当前的浏览器实际上都只是完全停止,主要是因为alert、prompt和confirm是一种古老的JavaScript(有点像document.write)遗留下来的这并不意味着要改变它们的行为方式——如果你想要一个好的非阻塞模式,现在有很多选择。哦,绝对是这样。关于
    警报
    本身——我不久前发现这只是一个可选的暂停!不能说我曾经遇到过一个浏览器,它不作为阻塞调用来实现,尽管有趣的是:technically该
    窗口
    对象及其上的任何函数在之前都不在任何规范中,因此它是“显然它需要…”和“天哪,为什么它仍然有/做…”的奇怪组合,今天=P