Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GWT引导-问题_Javascript_Gwt - Fatal编程技术网

Javascript GWT引导-问题

Javascript GWT引导-问题,javascript,gwt,Javascript,Gwt,阅读谷歌网页上的GWT引导,我有一些问题。 () 假设: 大多数浏览器最多允许两个同时连接来获取资源 HTML页面: 因此,引导由以下部分组成: 提取HTML文档并开始解析 开始获取bigImageZero.jpg 开始获取externalScriptZero.js bigImageZero.jpg完成(让我们假设)。解析将被阻止,直到externalScriptZero.js完成获取和计算 externalScriptZero.js完成 开始同时获取bigImageOne.jpg和real

阅读谷歌网页上的GWT引导,我有一些问题。 ()

假设: 大多数浏览器最多允许两个同时连接来获取资源

HTML页面:


因此,引导由以下部分组成:

  • 提取HTML文档并开始解析
  • 开始获取bigImageZero.jpg
  • 开始获取externalScriptZero.js
  • bigImageZero.jpg完成(让我们假设)。解析将被阻止,直到externalScriptZero.js完成获取和计算
  • externalScriptZero.js完成
  • 开始同时获取bigImageOne.jpg和reallyBigImageTwo.jpg
  • bigImageOne.jpg完成(让我们再次假设)。com.example.app.app.nocache.js开始获取和评估
  • …nocache.js完成,编译的脚本(…cache.js)开始获取(这是非阻塞的)
  • …cache.js完成。onModuleLoad()尚未调用,因为我们仍在等待externalScriptOne.js完成,然后文档才会被视为“就绪”
  • externalScriptOne.js完成。文档已准备就绪,因此onModuleLoad()将激发
  • reallyBigImageTwo.jpg完成
  • 激发body.onload(),在本例中显示一个alert()框

    问题:

    JAVASCRIPT如何知道文档已准备好开始onModuleLoad函数(步骤10)

  • 从同一页:

    • 调用
      onModuleLoad()
      时,不保证加载标记
    • 标记保证在调用
      onModuleLoad()
      时加载

    因此,当执行
    onModuleLoad()
    时,加载externalScriptOne.js,它不会在加载所有脚本标记之前启动。

    nocache.js或cache.js都可以在最后一个
    标记之后立即添加额外的
    标记。在提取、解析和评估所有以前的
    标记之前,不会提取此额外的
    标记。然后,这个
    标记将被提取、执行和评估,而无需等待任何图像。此
    标记的求值可以调用
    onModuleLoad()
    ,它不会等待任何映像,因此它会比body.onload发生得更快


    这只是我的理论;我无法在开发服务器上验证,也没有尝试在appengine上验证。

    您的问题在语法上非常不清楚。你到底想知道什么?onModuleLoad函数(javascript)是如何等待文档“就绪”的?因此,onModuleLoad没有被触发,因为解析器正在获取externalScriptOne.js。正确的?提前谢谢是的,那是正确的。在加载externalStricptOne.js之前,不会激发它。我不确定这是否是脚本标记的一个特性,或者GWT是否在body.onload中注册。但正如前面提到的,保证在调用onModuleLoad时加载所有脚本。你是对的,我在GWT编译的脚本中寻找这个。但是从google的页面“调用onModuleLoad()时不能保证加载标记。”打破了body.onLoad事件的理论。