4

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

与元素类型“script”关联的属性名称“async”必须后跟“=”字符。+ jsf

我在使用模板文件 template.xhtml 的 JSF2.4 应用程序中发现了这一点。文档类型是

<!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脚本的正确方法吗?如果您有更好的方法来解决此问题,请告诉我。

4

1 回答 1

2

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

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

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

于 2015-06-24T13:54:51.367 回答