我想在可用时立即开始操作DOM元素,以最大限度地缩短它在屏幕上显示的原始状态。我知道你在YUI中使用YAHOO.util.Event.onContentReady
,我很确定你在jQuery中使用bind
。我是新的Dojo,我不确定:这样做的“道场方式”是什么?
更新:我特别不想等待加载整个页面(这是一个非常大的数据量;单独的标记可能是MB或更多)。我想立即开始在DOM中查找元素并立即开始处理,而无需等待 ALL 标记下载,解析并插入到DOM中 - 可能需要相对较长的时间。我想开始查看DOM,并在这个小片段出现时立即开始工作。鉴于这种约束,dojo.ready
不合适?我的理解是它等待整个DOM准备就绪,类似于onDOMReady
。
答案 0 :(得分:3)
在将一块DOM添加到树之后注入功能的最精确方法是使用< script>这要求它在标记中直接放在它下面。它似乎不像onContentReady那样性感,但onContentReady只是一种轮询机制,可能会在domready的同一时间内执行你的回调,无论如何,在相关的DOM子树准备好编写脚本之后很久。
浏览器可以非常快速地组装DOM树。使用诸如onContentReady之类的轮询解决方案,您必须每隔几毫秒执行一次搜索目标元素的代码,从而减慢页面汇编/渲染速度。
我坚持将你的< script>保存在< body>的底部。或者,如果必须,将必须运行的现在该死的代码放在< script>中在所需的标记之后。
我不熟悉dojo的API,所以如果以上内容没有用,我就无法回答你的具体问题。
(编辑以转义前导< in标记以便显示)
答案 1 :(得分:2)
dojo.addOnLoad。还有一个更新的别名dojo.ready。
注意:除了等待DOM准备就绪之外,Add on load还等待确保加载所有必需的模块
答案 2 :(得分:1)
dojo.addOnLoad()
就是你想要的。请参阅documentation。
请注意,dojo.ready()
对于该方法为just an alias。