Асинхронная загрузка Java-скрипта показывает ошибку

Асинхронная загрузка Java-скрипта показывает следующую ошибку:

За именем атрибута "async", связанным с типом элемента "script", должен следовать символ "=". + 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:wiz="http://www.tolven.org/jsf/wizard"
xmlns:p="http://primefaces.org/ui"
xmlns:trim="http://www.tolven.org/jsf/trim">

Эта ошибка возникает, когда я использую HTML 5 DOCTYPE, но вызывает другие ошибки, так как DTD XHTML не найден.

Поэтому я попробовал атрибут async="async" вместо того, чтобы просто использовать асинхронный. Тогда все ошибки исчезли.

Это правильный метод для асинхронной загрузки Java-сценария в контексте, как это? Пожалуйста, дайте мне знать, если у вас есть лучшие методы, чтобы исправить это.

1 ответ

Решение

Как вы можете прочитать здесь https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script, "async" - это атрибут HTML5, поэтому вы должны использовать другой способ для асинхронной загрузки вашего JavaScript.

Одним из приемов может быть перемещение вашего сценария непосредственно перед закрывающим тегом.

Вы также можете использовать use "require.js", поскольку этот ответ предполагает: загрузить асинхронный ресурс с тайм-аутом requirejs

Другие вопросы по тегам