使用JSF 2.3在head元素内的CSS文件后放置外部JavaScript

时间:2018-12-31 07:18:32

标签: jsf jsf-2.3

我使用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的放置顺序对性能没有太大影响,但是如果加载速度变快,我想遵循更好的方法。

0 个答案:

没有答案