gpt4 book ai didi

JavaScript - <script> 标签的执行顺序

转载 作者:行者123 更新时间:2023-11-30 08:28:00 25 4
gpt4 key购买 nike

this SO question 中所述和许多其他类似的执行顺序 <script>页面上的s应该和html文档中定义这些标签的顺序一致。

我创建了一个简单的 Java(服务器端)测试应用程序,它允许执行请求并在返回响应之前等待指定的时间段(此问题底部的相关代码片段)。它有一个简单的 API:

http://localhost:8080/latency?time=XXX&response=YYY

将返回 console.log('done') 的示例请求一秒后(1000 毫秒):

http://localhost:8080/latency?time=1000&response=console.log(%27done%27)

接下来我创建了一个简单的 index.html 页面(由 nginx 提供服务):

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test order</title>
</head>
<body>
<script type="text/javascript" async=false src="http://localhost:8080/latency?time=1000&amp;response=console.log(%27done1%27)"></script>
<script type="text/javascript" async=false src="http://localhost:8080/latency?time=100&amp;response=console.log(%27done2%27)"></script>
<script type="text/javascript" async=false src="http://localhost:8080/latency?time=10&amp;response=console.log(%27done3%27)"></script>
<script>console.log('static script without "src" attr');</script>
</body>
</html>

根据我目前阅读的所有内容,我预计控制台输出的顺序是:

done1
done2
done3
static script without "src" attr

这是我得到的(Firefox 51 开发控制台):

latency requests 1

latency requests 2

这与我期望得到的顺序正好相反。我错过了什么吗? 有没有办法以所需的顺序执行这些脚本(即按照它们在 HTML 中定义的顺序)?

作为引用,服务器端的 Java 部分:

private String latency(HttpServletRequest request) {

long millis = Long.parseLong(request.getParameter("time"));
String response = request.getParameter("response");

try {
Thread.sleep(millis);
return (response != null) ? response : "";
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}

最佳答案

async是一个 bool 值 属性。它的值(value)无关紧要。删除属性。

关于JavaScript - &lt;script&gt; 标签的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42150332/

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