异步和延迟语法是否可以异步=“异步”

is it ok for async and defer syntax to be async="async"?

本文关键字:异步 是否 延迟 语法      更新时间:2023-09-26

>我有带有皮肤的 DNN。 我的头标签有runat="服务器",所以我尝试在头标签内添加一个标签,这样

<script async defer src="https://maps.googleapis.com/maps/api/js?key=<%#GoogleAPIkey%>"></script>

在后面的代码中,我在属性中设置了 var GoogleAPIkey。问题是它不加载值。

然后我尝试在代码后面添加脚本标签,如下所示

    HtmlGenericControl jqueryInclude = new HtmlGenericControl("script");
    jqueryInclude.Attributes.Add("type", "text/javascript");
    jqueryInclude.Attributes.Add("async", "async");
    jqueryInclude.Attributes.Add("defer", "defer");
    jqueryInclude.Attributes.Add("src", "https://maps.googleapis.com/maps/api/js?key=" + GoogleAPIkey );

此方法将标记输出为

<script async="async" defer="defer" src="https://maps.googleapis.com/maps/api/js?key=xxx"></script>

这是有效的语法还是我需要寻求一种不同的方法来写出它 - 甚至可能将其移出 head 标签。

规范声明async是一个布尔属性。至于如何指定布尔属性:

元素上存在布尔属性表示真值,缺少属性表示假值。

如果该属性存在,则其值必须是空字符串或 [...] 属性的规范名称,没有前导或尾随空格。

注意:布尔属性不允许使用值"true"和"false"。要表示假值,必须完全省略该属性。

所以从技术上讲,重要的是属性存在,而不是它的值是什么。这意味着您可以使用 async="async" .