异步 java 脚本加载显示错误

Asynchronous java script loading is showing error

异步 java 脚本加载显示以下错误:

Attribute name "async" associated with an element type "script" must be followed by the ' = ' character. + jsf

我在使用模板文件的 JSF2.4 应用程序中发现了这个 template.xhtml。 DOCTYPE 是

<!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:p="http://primefaces.org/ui">

当我使用 HTML 5 DOCTYPE 时出现此错误,但它会导致一些其他错误,因为找不到 XHTML DTD。

所以我尝试了属性 async="async" 而不是仅仅使用异步。 然后所有的错误都消失了。

这是在这样的上下文中异步加载 java 脚本的正确方法吗?如果您有更好的方法来解决这个问题,请告诉我。

您可以在此处阅读 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script,"async" 是一个 HTML5 属性,因此您必须使用另一种方式来异步加载 javascript。

一个技巧是将脚本移动到结束标记之前。

您也可以使用 "require.js",因为这个答案建议:Load async resource with requirejs timeout