当前位置:  开发笔记 > 编程语言 > 正文

Dojo addOnLoad,但是Dojo加载了吗?

如何解决《DojoaddOnLoad,但是Dojo加载了吗?》经验,为你挑选了1个好方法。

我遇到了似乎鸡和蛋的问题,并且我认为这是一个合乎逻辑的解决方案.然而,在我看来,其他人肯定遇到过类似的东西,所以我想我会把它漂到那里为群众.

情况是我想使用dojo的addOnLoad函数来排队一些回调,这些回调应该在DOM完成客户端渲染之后执行.所以我正在做的如下:


    
        
        ...
    
    
        ...
        
    

现在,问题是我似乎在整个Dojo库下载浏览器之前调用了dojo.addOnLoad.这在某种程度上是有道理的,因为内联SCRIPT内容应该在加载整个DOM 之前执行(并且触发正常的主体onload回调).

我的问题是 - 这是我的方法声音,或者更有意义的是注册普通/标准正文onload JavaScript回调来调用一个函数,它执行与每个dojo.addOnLoads在SCRIPT块中所做的相同的工作.当然,这就引出了一个问题,如果您不能保证在使用库之前加载Dojo库,为什么还要使用dojo.addOnLoad呢?

希望这种情况对我以外的人有意义.好像其他人可能遇到过这种情况.

思考?

最诚挚的问候,Adam Rice



1> Maine..:

你正确地做到了.外部Javascript文件按顺序同步加载和执行,因此当它到达您的dojo.addOnLoad( ... );Dojo时已加载.使用dojo.addOnLoad而不是window.onload出于两个原因:

它之前触发,因为它使用DOMContentLoaded

dojo.require通过推迟执行来处理异步加载,直到读取了所有必需的脚本

在DojoCampus中解释为(dojo.addOnLoad):

dojo.addOnLoad是使用Dojo的一个基本方面.传递addOnLoad函数将注册Dom准备好时运行的函数.这与document.ready和body.onload略有不同,因为addOnLoad会等待所有dojo.require()(以及它们的递归依赖项)在触发之前加载.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有