6 javascript java gwt dom
我知道以下是GWT中的某种相同内容:
Window and $wnd
Document and $doc
Run Code Online (Sandbox Code Playgroud)
除了第一个用于Java而第二个用于JSNI(JavaScript)之外,是否有任何差异?
Man*_*ino 13
Window是一个类很多静态方法,您可以使用它来获取或设置浏览器窗口的某些属性,但实际上它不是本机浏览器窗口对象.这些方法实现最终JSNI是使用$wnd变量来设置/获取这些属性的块.就像Window.alert()它的实现一样$wnd.alert().请注意,Window.java无法访问浏览器窗口对象中的所有内容等window.console.
GWT使用$wnd而不是window因为编译的代码在iframe中正常执行,并且在此上下文中,window将引用iframe窗口,同时$wnd引用父窗口.相同的发生与$doc它是在iframe到父文档的引用.
另一方面Document是一个扩展的java类JavaScriptObject,它意味着它是一个Overlay类型,它基本上意味着它是一个原生javascript对象的特殊包装器,它不会修改底层JavaScript但是添加了一组java方法来进行交互用它.传递给jsni时可以安全地施放.
综上所述,虽然Document并$doc没有在Java世界中一样,当它被编译,他们将是相同的,否则Window它不是的叠加$wnd,它只是一个访问浏览器窗口的某些方法途径.
虽然GWT编译代码委托给本机js对象和方法,但不要试图找到js和java对象之间的相似之处.GWT设计了一个API来使用一组java对象,小部件,模式等来开发ajax应用程序.一些对象和方法以相同的方式命名,但几乎API都不同.但是,其他项目将java编译为javascript,它们在ST-JS和GWT 这两个世界之间具有严格的并行性,提供了一个名为Elemental的实验库,其API几乎与javascript相同(它仅适用于Chrome).
| 归档时间: |
|
| 查看次数: |
7185 次 |
| 最近记录: |