`

超级开发模式介绍

    博客分类:
  • GWT
 
阅读更多
    超级开发模式是经典开发模式的一个实验性的取代,像经典开发模式一样,超级开发模式可以让开发者快速编译源代码并在浏览器中呈现结果。同时它也支持调试器来检测一个正在运行的GWT程序。但是,有所不同:
    如何工作
    超级开发模式在Web服务器中运行编译器,该服务器是一个普通的java应用程序,允许用户通过命令行操作。当服务器启动完毕后,会打印如下信息:
The code server is ready.
Next, visit: http://localhost:9876/
    服务器提供用户接口与超级开发模式进行交互并协同GWT编译器的输出,当用户点击“编译”按钮的时候,代码服务器以草稿模式启动编译器(该模式会关闭许多优化选项),并且输出如下形式的URL:
http://localhost:9876/hello/hello.nocache.js
     这看起来不错,但是我们为什么不在html页面上应用呢?一种可行办法是当运行GWT应用程序的时候临时编辑html页面中的<script>标签。但是这样做会带来不便,例如当这个页面在服务器上被其他程序共同使用的时候,或者修改HTML页面只能通过重启服务器实现。我们也可以像经典模式一样利用浏览器插件,但是GWT团队已经意识到浏览器插件很难维护。
     与之代替的是,超级开发模式使用另外一种方法来改变URL,它使用“Dev Mode On”书签。
点击书签弹出对话框列出当前页中的GWT应用程序并且允许你直接编译它们。

     按编译按钮重新编译GWT应用程序会设置一个特殊值到会话存储中,然后重新加载页面。
     会话存储像下面这样:
> window.sessionStorage["__gwtDevModeHook:hello"]
  "http://localhost:9876/hello/hello.nocache.js"
hello.nocache.js脚本会在会话存储中去匹配这个特殊值(用相同的模块名),然后自动重定向到所提供的URL。
     但是,由于超级开发模式一个实验性的特性,默认情况下,重定向是没有被开启的。要开启重定向功能,你必须在“module.xml”中添加如下语句:
<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>
(目前只有xsiframe支持超级开发模式)
     调试
     超级开发模式像生产模式一样将整个GWT应用程序编译成javascript代码,这意味着我们不能像经典模式一样使用普通的java调试器。但是这里可以使用浏览器调试器的“源码链接”功能进行调试。在google的chrome浏览器中你必须启动源码链接功能,如下:



     一旦开启这个功能,你就能在google的chrome浏览器的开发者工具的脚本标签中浏览你的java源码。
     它如下工作:当使用超级开发模式的时候,浏览器调试器会到代码服务器上下载java文件,除此之外,你还可以直接在代码服务器上浏览你的java源码,用下面形式的URL:
http://localhost:9876/sourcemaps/hello/com/google/gwt/core/client/GWT.java
     为了防止在internet上暴露你的源码,代码服务器默认工作在本地,因此只能在同一台电脑上访问你的代码服务器。如果你有防火前或者你不介意别人看见你的源码你可以更改此项代码服务器的工作方式。
     区别
     与经典模式比较,超级开发模式有如下优点:
  • 无插件要求,这样可以增加对更多浏览器的支持或者手机上特殊的浏览器
  • 性能提速当频繁调用javascript时,由于不用经过internet环路
  • 当每一个页面加载的时候,超级开发模式不会自动编译,这样方便调试多页面应用程序
  • 开发者可以在一个会话中调试java,javascript或者其他客户端语言代码,当GWT调用javascript库的时候非常有用。
  • 浏览器调试器有许多高级特性可以用来调试GWT应用程序。

但是,也有许多弊端你必须意识到:
  • 安全性上有顾虑,推荐代码服务器在本地工作或在防火墙内工作,为安全起见,发布铲平的时候关闭超级开发模式特性
  • 目前只在chrome和firefox中测试通过
  • 只有GWT链接支持超级开发模式
  • 目前只有chrome支持source maps
  • 许多java调试器的特性不能在超级开发模式使用
  • 由于超级开发模式不在jvm中运行GWT程序,因此许多运行时的结果不能得到

基于这些原因,目前超级开发模式只是在实验阶段,我们希望有更多的人使用它,为提升它作出一些贡献,最终让超级开发模式替换经典开发模式。
    启动代码服务器
    如果你坚持到这里,那么你必须对开启超级开发模式作一些具体的了解:
  • jar文件是gwt-codeserver.jar
  • 你也应该需要gwt-dev.jar,其他你编译GWT时需要的jar文件
  • 主要方法是com.google.gwt.dev.codeserver.CodeServer

下面是codeserver目前支持的命令行选项:
CodeServer [-bindAddress address] [-port port] [-workDir dir] [-src dir] [module]

where
  -bindAddress  The ip address of the code server. Defaults to 127.0.0.1.
  -port         The port where the code server will run.
  -workDir      The root of the directory tree where the code server will write compiler output. If not supplied, a temporary directory will be used.
  -src          A directory containing GWT source to be prepended to the classpath for compiling.
and
  module        The GWT modules that the code server should compile. (Example: com.example.MyApp)
原文地址:http://www.gwtproject.org/articles/superdevmode.html
  • 大小: 7.1 KB
  • 大小: 3 KB
分享到:
评论

相关推荐

    JavaWeb基于MVC模式开发的简易购物车系统

    该系统主要采用MVC(JSP+JavaBean+Servlet)模式开发,非常适合初学者了解并掌握MVC开发模式,具有如下主要功能: 1.用户登录,注册(用户注册后才能登录) 2.显示所有书籍基本信息(编号,书名,价格等) 3.添加...

    大盘研究_超级大盘发展与开发模式的实证研究_65页.pptx

    大盘研究_超级大盘发展与开发模式的实证研究_65页.pptx

    Windows开发人员超级工具集下载

     本书作者维护着在线网站PowerTools,使您可以及时了解新工具的信息,知晓本书介绍工具的新版本发布以及工具特征。  不仅如此,针对Windows开发,它的内容不仅仅局限于Visual Studio。在您计划、开发、测试和推出...

    PB+SQL超级开发框架源码

    本框架汇集了信息管理窗口(包括信息添加窗口、修改窗口、删除窗口、检索窗口等)各种模式,使您学习或开发起来更加得心应手。 &lt;br&gt;本框架的好处 1.适合初学者学习. 通过本框架,您可以基本的窗口制作学起,到...

    2--[超级版打飞机-剧情模式首测].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码

    2--[超级版打飞机-剧情模式首测].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[超级版打飞机-剧情模式首测].zip源码scratch2.0 3.0编程项目源文件源码案例素材源代码2--[超级版打飞机-剧情模式首测]....

    超经典的Web前端与移动开发基础视频 Web前端基础开发视频教程 移动开发基础视频教程

    69前端开发基础视频-CSS设置标签模式display属性介绍.avi 70前端开发基础视频-CSS设置标签模式display设置none隐藏标签.avi 71前端开发基础视频-CSS设置标签模式display行内块元素及块级行内的区别总结.avi 72...

    敏捷软件开发:原则、模式与实践

    软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。 在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。...

    EasyHttpd:基于Go语言开发的超级简便.rar

    开发规范、设计模式、代码分层模型 强大便捷的开发工具链 完善的本地中文化支持 设计为团队及企业使用 内置模块 用户管理:用于维护管理系统的用户,常规信息的维护与账号设置。 角色管理:角色菜单管理与权限分配、...

    敏捷软件开发:原则、模式与设计

    pdf格式,爽蒙了 以前老下pdg的 超级经典的书,关键是易懂啊

    基于Java的超级玛丽游戏的设计与实现

    本文在介绍Java相关技术和国内外发展现状的基础上,对“超级玛丽”游戏的整个生命周期的各个开发阶段进行了详细地介绍。为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序调试过程和功能测试...

    基于Java的超级玛丽游戏的设计与实现.doc

    基于java的超级玛丽游戏的设计与实现 摘要 ...本文在介绍Java相关技术和国内外发展现状的基础上,对“超级玛丽”游戏的整个生命周期的各个开发阶段进行了详细地介绍。为了保证程序代码的正确性和功能

    基于Java的超级玛丽游戏的设计与实现论文

    开发了一款超级玛丽 游戏,该游戏主要分为窗体类、场景类、马里奥类、敌人类、障碍物类等几个类。 在主程序运行的线程中,用户控制的超级玛丽随方向键的操作而移动,并且可以 实现马里奥游戏中的一些基本功能,例如...

    基于Java的超级玛丽游戏的设计与实现【论文资源+PPT+讲解视频】

    本文在介绍Java相关技术和国内外发展现状的基础上,对“超级玛丽”游戏的整个生命周期的各个开发阶段进行了详细地介绍。为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序调试过程和功能测试...

    基于java的超级玛丽游戏的设计与实现

    本文在介绍Java相关技术和国内外发展现状的基础上,对“超级玛丽”游戏的整个生命周期的各个开发阶段进行了详细地介绍。为了保证程序代码的正确性和功能实现的可靠性,本文还介绍了游戏软件的程序

    Java超级玛丽游戏源码.zip

    本游戏中通过总结和分析JAVA游戏的开发流程和代码功能的设计,采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。开发了一款超级玛丽游戏,该游戏主要分为窗体类、场景类、马里奥类、敌人类、障碍物...

    史上最强的嵌入式底层驱动开发课程 Linux系统开发+Linux高级程序+主板开发+ARM等

    │ ├15 - GNU开发环境基础_EclipseForLinux.mp4 │ ├16 - Linux高级程序_IO操作1.mp4 │ ├17 - Linux高级程序_IO操作2.wmv │ ├18 - Linux高级程序_IO操作3.mp4 │ ├19 - Linux高级程序_IO操作4.wmv │ ├20 - ...

    基于Java的超级玛丽游戏的设计与实现.rar

    计算机专业毕业设计+论文+教程。 基于Java的超级玛丽游戏的设计与实现,程序源代码...本游戏中通过总结和分析JAVA游戏的开发流程和代码功能的设计,采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。

    超级蚊霸

    2007版全新加入了笔记本、台式机切换模式更进一步增强完善了超级智能广谱驱蚊功能,从新编写各相关算法全面智能适应不同地区、不同种类的蚊子!保护您和家人的健康,更舒心的使用电脑工作和娱乐请使用超级蚊霸(原名:...

Global site tag (gtag.js) - Google Analytics