gpt4 book ai didi

javascript - 在使用 ui :include 包含的 xhtml 文件中包含 JS 文件

转载 作者:数据小太阳 更新时间:2023-10-29 05:47:08 25 4
gpt4 key购买 nike

我将用一个例子来说明我的问题:

外部文件.xhtml:

<h:head>
<h:outputScript library="js" name="jquery-1.6.2.js" />
<h:outputScript library="js" name="outer.js" />
</h:head>

<h:body>
<h:panelGroup id="inner_panel">
<ui:include src="innerfile.xhtml" />
</h:panelGroup>
</h:body>

内部文件.xhtml:

<ui:composition ... >
<h:head>
<h:outputScript library="js" name="jquery-1.6.2.js" />
<h:outputScript library="js" name="inner.js" />
</h:head>

<h:body>
<h:panelGroup>
I Am Text in The Inner File!
</h:panelGroup>
</h:body>
</ui:composition>

我的问题:

  1. 可以像我那样在内部文件中声明 js 文件吗?
  2. 我是否需要(并且应该)在内部文件中再次声明公共(public) (jquery-1.6.2.js)?
  3. 如果我使用 AJAX 取消渲染和重新渲染 inner_panel 会怎样?是否会重新加载内部包含的 header ?

最佳答案

Is it okay to declare the js files in the inner file the way I did?

没有。您不应指定 <h:head>在包括以及。这只会导致无效 HTML。正如您现在所做的那样,将导致:

<html>
<head>
<script></script>
</head>
<body>
<head>
<script></script>
</head>
<body>
</body>
</body>
</html>

(在浏览器中右击页面并执行查看源代码自己查看,w3-validate 如有必要)

innerfile.xhtml 中相应地修复它:

<ui:composition ... >
<h:outputScript library="js" name="jquery-1.6.2.js" target="head" />
<h:outputScript library="js" name="inner.js" target="head" />

<h:panelGroup>
I Am Text in The Inner File!
</h:panelGroup>
</ui:composition>

这将生成有效的 HTML。 <h:outputScript target="head">声明的脚本最终会出现在 <head> 中自动,如果之前没有声明过。就像在真正的 HTML 中一样,应该只有 一个 <h:head><h:body>在整个 View 中,包括任何模板和包含文件。


Do I need (And Should I) declare the common (jquery-1.6.2.js) again in the inner file?

如果父文件已经声明为 <h:outputScript> 则不是.但是在包含中重新声明它并没有坏处。如果之前已经声明过,则无论如何都不会重复。


What happens if I un-render and the re-render inner_panel using Ajax? Will the inner-included headers be reloaded?

这仅在您不使用 target="head" 时有效.它们是否会从服务器重新加载,取决于它是否已经被浏览器请求过并且已经存在于浏览器缓存中并且有效。但基本上,浏览器会再次被告知加载它,是的。使用 Firebug,您可以轻松确定它。

关于javascript - 在使用 ui :include 包含的 xhtml 文件中包含 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7627434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com