gpt4 book ai didi

javascript - Firefox 会在检索图像时显示它们吗?

转载 作者:行者123 更新时间:2023-12-02 20:41:42 25 4
gpt4 key购买 nike

我有下面的测试代码。我期望 Firefox 显示第一个图像,执行延迟并暂停第二个图像的检索,然后显示“Hello”和第二个图像。

为什么延迟后立即显示所有内容?

更新:我需要添加更多说明。我不想编写生产代码。我读到浏览器会暂停执行 js 脚本,直到完成,然后继续显示脚本标记后出现的任何内容。这包括在其他浏览器连接上检索图像。我试图证明这确实发生了,但事实并非如此。

<body>
<img src="images/web.gif" /><br />
<script type="text/javascript">
document.body.innerHTML = "";
for (var i = 0; i < 1000000000; i++) {
}
document.write( "hello<br />");
</script>
<img src="images/web2.gif" /><br />
</body>

最佳答案

嗯,在脚本部分内联 document.write 实际上会让浏览器立即解释它,因为您可能会在那里输出各种内容,包括例如注释开始( <!-- ),这会使其余部分无效。

如果您想避免 Javascript 执行阻止页面加载,您应该使用外部文件和 defer属性。这将告诉浏览器该脚本不需要立即解释,以便浏览器可以继续渲染页面:

<script type="text/javascript" src="delay.js" defer="defer"></script>

但是,如果您这样做,您将无法像示例中那样使用 document.write 内联输出。但这应该不是问题。您可以在同一位置添加 a 并在脚本中添加以下内容。

document.getElementById("output").innerHTML = "Hello";

此外,如果您使用 defer在脚本上,那么您的脚本变量将无法立即用于应用程序中的其他非延迟脚本 block (出于显而易见的原因,它们可能尚未加载!)。

其次,不要使用循环来模拟延迟。我无法强调这有多糟糕。我假设您只是为了简单起见而使用它。

关于javascript - Firefox 会在检索图像时显示它们吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com