我使用JSF 2.3开发Web应用程序。 作为Web开发人员,我关心网站的加载速度的性能。
在探索如何提高网站速度时,我在Stack Overflow上遇到了this post。
样式表应始终在文档的开头指定,以便获得更好的性能。重要的是,在可能的情况下,必须包含在标题中的所有外部JS文件(例如写给文档的外部JS文件)都应遵循样式表,以防止下载时间延迟。
我知道,将JavaScript放在<body>
的底部时,其性能会更好,但是我想包含reCAPTCHA,Google指示我们将所需的外部JavaScript放在结束</head>
标记之前。
因此,我决定在结束</head>
标签之前和CSS文件之后添加所需的外部JavaScript,以提高性能。
但是,我的CSS文件是以<h:outputStylesheet name="css/default.css"/>
之类的JSF方式声明的,我意识到以这种方式声明的CSS文件总是放在以非JSF方式声明的文件之后,即{{ 1}}。我还考虑了通过将<script src="https://www.google.com/recaptcha/api.js"></script>
更改为<script>
来使外部JavaScript以JSF的方式运行,但是<h:outputScript>
只能如this post中所述呈现本地脚本。
因此,结果始终如下。
<h:outputScript>
安装
<head>
<script src="https://www.google.com/recaptcha/api.js"></script>
<link type="text/css" rel="stylesheet" href="/project/javax.faces.resource/css/default.css.xhtml" />
</head>
也许我想的太多了,<head>
<link type="text/css" rel="stylesheet" href="/project/javax.faces.resource/css/default.css.xhtml" />
<script src="https://www.google.com/recaptcha/api.js"></script>
</head>
和link
的放置顺序对性能没有太大影响,但是如果加载速度变快,我想遵循更好的方法。