我是关于这项技术的新手,但我想知道是否有可能在服务器上创建新对象(html元素,例如div / span /等等......)并将其发送到客户端,或者如果当我在应用程序中开发它时,我可以加载在客户端制作的那些。
我不问怎么做(我认为这是一个微妙的论点),但如果我能,并且(如果是的话)我可以在哪里获得一些东西/示例/教程来做到这一点。
示例
我通常做的事情:
...
public void onSuccess(Boolean result) {
if(result) {
myFunction();
}
}
...
myFunction() {
InlineLabel label=new InlineLabel();
this.add(label)
}
我在寻找什么:
...
public void onSuccess(InlineLabel result) {
this.add(result)
}
所以,我不需要事先加载Object,但只有在我点击某个按钮(或者如果我执行一个动作)时才加载它们。这将在客户端上加载(作为JavaScript)很多代码(即inutil,如果我不做任何操作)。
像往常一样,谢谢你的时间!
答案 0 :(得分:2)
GWT不支持您展示的模式,但您可以通过“代码拆分”获得类似的效果:阅读http://code.google.com/webtoolkit/doc/latest/DevGuideCodeSplitting.html
通过代码拆分,客户端只会立即下载所需的脚本(由开发人员配置)。例如,如果用户导航到需要更多小部件的UI的更复杂区域,则将下载其他代码。
答案 1 :(得分:1)
我不完全确定我理解你的问题,但如果我错过了标记,请随时修改你的问题或发表评论。
GWT应用程序在以下(简化)过程中加载:
主页可以包含您想要的任何HTML。唯一的要求是包含一个加载GWT引导脚本的<script>
元素。
因此,您可以让服务器返回包含您喜欢的任何服务器生成标记的页面。
应用程序运行后,您可以在代码中发送异步请求以从服务器检索任意数据。一种选择是检索服务器生成的HTML并将其插入到您的应用程序中。
对于此选项,您需要实例化HTML
widget,然后使用其setHTML
方法将服务器生成的标记插入到窗口小部件中。
作为替代方案,您可以通过GWT RPC从服务器检索结构化数据。在基于Java的服务器上创建的对象由服务器上的GWT序列化,并在客户端上反序列化为常规对象。然后,您可以使用访问器方法(getName
,getId
等)从这些对象中提取数据。此时,您有几个选择:
StringBuilder
等生成一些HTML,然后在setHTML
小部件上使用HTML
。DOM
class