4

非同期 Java スクリプトの読み込みで次のエラーが表示されます:

要素タイプ「script」に関連付けられた属性名「async」の後には「=」文字が続く必要があります。+ jsf

これは、テンプレート ファイル template.xhtml を使用する JSF2.4 アプリケーションで見つかりました。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 スクリプトを非同期にロードする正しい方法ですか? これを修正するためのより良い方法があれば教えてください。

4

1 に答える 1

2

ここで読むことができるようにhttps://developer.mozilla.org/en-US/docs/Web/HTML/Element/script、「async」は HTML5 属性であるため、JavaScript を非同期的にロードするには別の方法を使用する必要があります。

1 つのトリックは、終了タグの直前にスクリプトを移動することです。

この回答が示唆するように、「require.js」を使用することもできます:requirejsタイムアウトで非同期リソースをロードする

于 2015-06-24T13:54:51.367 に答える