0

我见过很多类似的问题,但没有一个专门解决这个问题。

对于 Web 应用程序,我设计了许多特定的动态“片段”(例如,当前会话的登录状态)。这些片段被保存为不完整的html(具体来说是不完整的jsp页面)。它们没有 html 或 body 标签。但是有css样式和片段工作所必需的javascript文件。

片段.jsp

<script type="text/javascript">
[...]code and functions to use ajax request to load current name using sessions
</script>

<div id="userProfile">
<H1>Current User:<span id="name">NONE GIVEN</span></H1>
</div>

然后目标是使用 JQuery 在当前页面上加载片段,添加 css 以将其保持在右上角的固定位置。

  1. 关于动态加载此类片段时的 CSS。如果使用 $("#someID").load() 加载这样的片段,则包含的 CSS 和 JS 链接会加载到当前容器中,从而使 html 无效?

  2. 仅使用 url $("#someID").load("/fragments/Fragment.jsp #userProfile"); 中的选择加载片段,然后动态加载 css 和 js。

我认为应该避免将代码静态添加到页面,因为使用片段的页面数量会导致必须对许多页面进行更改,从而导致网站无法管理。

4

1 回答 1

0

由于这似乎是另一个愚蠢的问题,让我给出我的看法,以及我使用的解决方案。请记住,这可能不正确,因为我刚开始网页设计。

- 我使用带有 Servlets/JSP 的 Tomcat 作为服务器端,但这对创建和使用小部件没有影响。

片段.jsp

<div id="widget">
This contains the widget html. For the example here is a div to fill with data dynamically
<div id="dynamic"></div>
</div>

片段.js

function initiateFragment(){
  $.get(aUrl,function(data){
    //callback goes here
    $("body").append(data);
    $("#dynamic").html(//dynamic content for the div);
    $("#widget").css(//Add any css here, don't include it to force modularity);
    //Since I needed a login widget, I added css to move the div out of document flow and to the top right
    });
}

现在,只需在我的主页上调用initialFragment()(确保包含fragment.js),片段就会加载并出现。

于 2013-06-06T13:51:41.087 回答