Gwt延迟绑定介绍
Gwt的延迟绑定是一种gwt对反射机制的一种支持方案。简单的说就是在使用gwt进行代码开发的时候,可以使用接口和抽象类,而不用管它的实现,在编译后或者host模式的情况下,gwt会自己跟模块配置的信息来使用具体哪一个实现类替代代码中的接口和抽象类。
使用说明:
1. 定义接口或者抽象类,然后再定义一个实现类。
2. 在xxx.gwt.xml(模块文件中定义)替换的参数信息和具体替换的类
<replace-with class="com.google.gwt.user.client.impl.DOMImplMozilla">
<when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
<when-property-is name="user.agent" value="gecko1_8"/>
</replace-with>
上面的配置是将在firefox浏览器里面使用DOMImpl该类的地方使用DOMImplMozilla这个类进行替换。其中的replace-with是指实际用到的类,when-type-is则是要替换的类,when-property-is则是一些参数信息,可以添加0到多个。另外,关于参数的配置还可以加一些逻辑的限制,如Any,
<any>
<when-property-is name="user.agent" value="gecko"/>
<when-property-is name="user.agent" value="gecko1_8" />
</any>
3. 在代码中使用
通过GWT.create方法可以动态的获取不同的实现类,如下:
DOMImpl impl = (DOMImpl) GWT.create(DOMImpl.class);
再结合gwt的dom模块的配置信息(如下),impl对象将会根据不同的浏览器而动态采用不同的domimpl类的实现。
<module>
<inherits name="com.google.gwt.core.Core"/>
<inherits name="com.google.gwt.user.UserAgent"/>
<replace-with class="com.google.gwt.user.client.impl.DOMImplOpera">
<when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
<when-property-is name="user.agent" value="opera"/>
</replace-with>
<replace-with class="com.google.gwt.user.client.impl.DOMImplSafari">
<when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
<when-property-is name="user.agent" value="safari"/>
</replace-with>
<replace-with class="com.google.gwt.user.client.impl.DOMImplIE6">
<when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
<when-property-is name="user.agent" value="ie6"/>
</replace-with>
<replace-with class="com.google.gwt.user.client.impl.DOMImplMozilla">
<when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
<when-property-is name="user.agent" value="gecko1_8"/>
</replace-with>
<replace-with class="com.google.gwt.user.client.impl.DOMImplMozillaOld">
<when-type-is class="com.google.gwt.user.client.impl.DOMImpl"/>
<when-property-is name="user.agent" value="gecko"/>
</replace-with>
</module>
参考:
http://code.google.com/docreader/#p=google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=DevGuideDeferredBinding
分享到:
相关推荐
2. **数据绑定**:SmartGWT支持数据绑定,允许开发者将UI组件直接与后台数据模型关联,实现数据的动态更新。在DEMO中,可以看到如何使用DataSource和Record来实现这一功能。 3. **事件处理**:DEMO会演示如何注册...
在性能优化方面,SmartGwt采用了延迟加载和按需加载策略,只有在用户实际需要时才会加载相应的组件或数据,从而减少了初始加载时间和网络带宽消耗。此外,它还提供了缓存机制和资源管理,进一步提高了应用的响应速度...
2. **数据绑定**:SmartGWT支持自动的数据绑定,使得UI组件可以与后台数据源(如数据库或Web服务)进行交互。通过实例,你可以学习如何实现数据的动态加载、更新和保存。 3. **事件处理**:事件驱动编程是GUI开发的...
在性能优化方面,SmartGWT 使用了延迟加载(Lazy Loading)和分块加载(Chunk Loading)策略,减少初始页面加载的时间,改善用户体验。特别是处理大数据集时,这些策略可以显著减少网络传输量,避免一次性加载过多...
在GWT中,API包含了各种控件、服务、事件处理和数据绑定等模块,使得开发者可以便捷地构建Web应用。 **GWT API 帮助文档** 是一份详细的资源,用于指导开发者理解和使用GWT框架的各种功能。这份文档通常包含以下...
在描述中提到的博文链接指向了ITEYE博客上的一篇文章,虽然具体内容未给出,但我们可以推测这篇博客可能详细介绍了如何使用SmartGWT进行开发,可能包括了示例代码、最佳实践或者常见问题的解决方法。 标签“源码”...
8. **性能优化**:GWT支持本地优化和延迟绑定,使得大型应用的加载和运行更加高效。开发者需要了解这些优化技术,并在项目配置中考虑它们。 9. **社区资源**:描述中提到了一个博客链接,这表明社区资源对于学习和...
此外,书中还会涵盖GWT的优化技术,如代码分割、延迟加载和本地化支持,这些对于提高Web应用的性能和用户体验具有重大意义。此外,GWT的国际化和本地化策略也是开发者在构建全球化应用时必须掌握的知识。 对于测试...
5. **数据绑定和模型**:理解GWT的数据绑定概念,以及如何使用ValueProviders和Models进行数据操作。 6. **事件处理**:学习GWT和EXT-JS中的事件监听和处理机制,如何在用户交互中响应事件。 7. **本地存储和持久...
开发者手册通常会详细介绍GWT的高级特性,比如Deferred Binding(延迟绑定)用于实现代码分割,减少初始加载时间;History and Bookmarks(历史记录和书签)功能使用户可以使用浏览器的前进/后退按钮在应用内导航;...
这通常涉及到一个列表视图(如`CellList`或`DataGrid`),它可以绑定到数据源,并自动处理数据的加载和显示。 6. **事件处理**:当用户点击分页按钮时,触发相应的事件处理器,调用服务接口获取新的数据,并更新...
GWT-Ext通过延迟加载和按需加载策略,降低了初始加载时的资源消耗。同时,GWT的编译优化也能确保代码在客户端高效运行。 10. **实践与进阶** 本教程将逐步引导你了解GWT-Ext的基础知识,并通过实例教你如何创建和...
此CHM版的API文档包含了EXT-GWT 2.2.4的所有核心类、接口和方法的详细介绍,对于开发者来说是一个非常宝贵的资源。CHM(Compiled HTML Help)文件是一种Windows平台下的帮助文件格式,它将HTML页面打包成单一文件,...
7. **数据绑定**:Gwt-Ext的数据绑定机制,包括模型(Model)、视图(View)和控制器(Controller)的概念,以及如何实现数据的双向绑定。 在"中级篇"中,你将深入到以下内容: 1. **高级组件**:探索Gwt-Ext的...
达到中级水平,你应熟悉GWT的性能优化技巧,包括代码分割、延迟加载、压缩和合并,以减少HTTP请求并提高页面加载速度。学习使用GWT的ClientBundle和Resource Bundle来管理静态资源,以及如何使用RequestBuilder进行...
2. **数据绑定**:SmartGWT支持数据驱动的UI,这意味着组件可以直接与服务器端的数据源进行绑定,减少了手动处理数据的繁琐工作。 3. **事件处理**:它具有强大的事件处理机制,使得组件间的交互变得简单而直观。 ...
5. **数据绑定与持久化**:GWT的数据绑定机制使得视图和模型能够自动同步,同时,讲解如何使用GWT的RequestFactory或GAE的JDO/Persistence API进行数据持久化操作。 6. **异步通信与RPC**:GWT的Remote Procedure ...
这本书《GWT in Action》深入浅出地介绍了GWT的各个方面,包括基本概念、组件使用、异步通信、用户界面设计以及高级特性等。其附带的源码提供了丰富的示例,帮助读者更好地理解和应用书中所讲解的知识。 1. **GWT...
- **第17章:延迟绑定**,探讨如何通过编译时决策来提高应用程序的性能和灵活性。 - **第18章:自动代码生成**,讨论GWT提供的代码生成机制,用于简化常见的编程任务。 - **第19章:度量和代码分割**,讲解如何监控...