GWT HTML中的Javascript位置

时间:2013-07-11 04:18:09

标签: java gwt

在使用JSNI方法中的JS库的GWT应用程序中,在GWT应用程序nocache.js之前和nocache.js之后放置Javascript(.js)库有什么区别。

它是否会影响JSNI方法是否有效?

3 个答案:

答案 0 :(得分:2)

这实际上取决于加载JSNI方法的时间。

为了安全起见 - 请务必检查您使用的JS库是否已加载。例如

public native static boolean isJqueryMethodLoaded(String method) /*-{
  if ($wnd.jQuery && $wnd.jQuery[method]) {
      return true;
   } else {
      return false;
   }
}-*/;

(已编辑 - 感谢其他答案以澄清加载顺序)

答案 1 :(得分:1)

onModuleLoad始终在DOMContentLoaded或之后调用,这将始终在您的脚本加载后发生(因为它们可以执行document.write()),除非您使用{{1}加载它们}或async

因此,除非您使用deferasync加载“其他JS”,否则加载它们的顺序无关紧要,因为应始终调用defer < em>在之后加载。

答案 2 :(得分:1)

普通<script>标记是阻塞的,但GWT脚本标记不是,因为它是异步提取的(即非阻塞)。只有在解析了主体(即已提取脚本)时才会调用onModuleLoad()。因此:

  • 将其作为列表中的第一个脚本:您将节省时间;
  • 调用<script>时,将始终加载
  • onModuleLoad()个标记。

查看here