在HTML中包含Javascript使用的信息?

在HTML中包含Javascript使用的信息?,javascript,gwt,Javascript,Gwt,我正在用appengine(java)和GWT构建一个web应用,尽管我认为我的问题更多的是一个一般的javascript问题 在我的应用程序中,我希望包含一个从数据库中的数据生成的侧菜单。这显然需要从servlet动态完成 目前,我正在发送一个空白的菜单容器,然后进行ajax调用以获取填充菜单所需的信息。我宁愿在最初的请求中发送菜单信息,这样我就不需要浪费时间来提出第二个请求。我使用这种最初的方法是因为它看起来更简单:我只编写了一个gwt rpc服务来获取我需要的数据 我的问题是,我能否指示像

我正在用appengine(java)和GWT构建一个web应用,尽管我认为我的问题更多的是一个一般的javascript问题

在我的应用程序中,我希望包含一个从数据库中的数据生成的侧菜单。这显然需要从servlet动态完成

目前,我正在发送一个空白的菜单容器,然后进行ajax调用以获取填充菜单所需的信息。我宁愿在最初的请求中发送菜单信息,这样我就不需要浪费时间来提出第二个请求。我使用这种最初的方法是因为它看起来更简单:我只编写了一个gwt rpc服务来获取我需要的数据


我的问题是,我能否指示像gwt这样的javascript库在当前网页中查找其信息?我是否必须在原始的HTML响应中隐藏这些信息,可能是隐藏在一个隐藏的div或其他地方

您可以在定义数据的原始响应中包含脚本块,然后使用onload事件(或类似事件)基于该数据创建菜单;这与您现在所做的非常相似,但是没有额外的服务器访问。我假设构建菜单的数据是通过客户端上的JavaScript以某种方式进行转换的;否则,只需直接包含菜单标记。

GWT有一个称为JSNI(Javascript本机接口)的东西,可以与其他非GWT Javascript接口。因此,您可以在HTML页面容器中拥有一个包含生成的菜单项的Javascript对象。然后,在GWT代码中,您有一个JSNI调用来获取这些数据,并使用GWT方法将其放在UI/DOM的正确位置。

几周前,我问了一个类似的问题,关于如何在HTML标记中安全地存储数据。它还包含一些指向其他问题的链接

通常有两种选择:

  • 将数据存储在html代码中的某个xml标记中,然后通过遍历DOM从中获取信息。(您可以使用css隐藏它们)
  • 将数据作为数据存储在脚本标记中。(几乎每种语言都有en和解码器)

    var data={“foo”:“bar”,“my_数组”:[]};

如果要嵌入的数据仅限于菜单项,为什么不直接从简单的
  • 元素生成轻量级HTML?您仍然可以通过使用模板引擎将HTML排除在Java代码之外。菜单标记可以使用CSS进行样式化,或者如果您需要一些比
  • 元素更奇特的东西,则可以在页面加载后使用JavaScript对DOM进行处理(阅读:)

    如果您正在寻找一种更通用的解决方案,而不仅仅是菜单,那么您可以在页面中嵌入一个JSON块,在页面加载时使用它来动态生成菜单


    或者,您可以考虑使用。

    谢谢大家的帮助。我喜欢嵌入式json方法,并且已经提到过好几次了。嵌入式xml方法非常类似。我只是不确定在html文档中嵌入xml或json是否合适。我相信gwt也有一些类来处理json解析。