Dom Dojo加载,但是Dojo加载了吗?
我遇到了一个看起来像鸡和蛋的问题,我认为这是一个合乎逻辑的解决方案。然而,我突然想到,其他人肯定也遇到过类似的事情,所以我想我应该把它漂浮在那里,让大众知道 情况是,我想使用dojo的addOnLoad函数将大量回调排队,这些回调应该在DOM在客户端完成渲染后执行。因此,我所做的如下:Dom Dojo加载,但是Dojo加载了吗?,dom,dojo,onload,Dom,Dojo,Onload,我遇到了一个看起来像鸡和蛋的问题,我认为这是一个合乎逻辑的解决方案。然而,我突然想到,其他人肯定也遇到过类似的事情,所以我想我应该把它漂浮在那里,让大众知道 情况是,我想使用dojo的addOnLoad函数将大量回调排队,这些回调应该在DOM在客户端完成渲染后执行。因此,我所做的如下: <html> <head> <script type="text/javascript" src="dojo.xd.js"></script>
<html>
<head>
<script type="text/javascript" src="dojo.xd.js"></script>
...
</head>
<body>
...
<script type="text/javascript">
dojo.addOnLoad( ... );
dojo.addOnLoad( ... );
...
</script>
</body>
</html>
...
...
dojo.addOnLoad(…);
dojo.addOnLoad(…);
...
现在的问题是,我似乎在将整个dojo库下载到浏览器之前调用dojo.addOnLoad。这在某种程度上是有意义的,因为内联脚本内容应该在加载整个DOM之前执行(并且触发正常的body onload回调)
我的问题是,我的方法是否合理,或者注册一个普通/标准的body onload JavaScript回调来调用函数是否更有意义,该函数所做的工作与每个dojo.addonload在脚本块中所做的工作相同。当然,这就引出了一个问题:如果不能保证在使用dojo库之前加载dojo库,那么为什么还要使用dojo.addOnLoad
希望这种情况对我以外的人有意义。似乎有人遇到过这种情况
想法
致以最良好的祝愿,
亚当·赖斯你做得对。外部Javascript文件是按顺序同步加载和执行的,所以当它到达您的
dojo.addOnLoad(…)代码>Dojo已加载。使用dojo.addOnLoad
而不是window.onload
有两个原因:
- 它发射得更早,因为它利用了
- 它处理dojo.require的异步加载,方法是延迟执行,直到读取了所有必需的脚本
在DojoCampus中解释为():
addOnLoad是一个基本方面
使用Dojo的方法。正在传递加载a
函数将函数注册到
在Dom就绪时运行。这
与document.ready略有不同
还有body.onload在addOnLoad中
等待所有dojo.require()(和
它们的递归依赖关系)具有
射击前装弹
这可能与你的问题无关,但我刚刚有一个病例,我也有同样的症状。对我来说,Firefox、Chrome等的一切都很好,但IE8却不行
我得到了看起来像dojo没有被加载的结果,IE8中的一个错误说dojo是未定义的(但不是一直如此),我可以将所有内容剥离为样式表并导入dojo,但仍然会得到错误
我在运行一个本地的谷歌应用引擎开发服务器。这看起来是基于pythons SimpleHTTPServer的,它反过来使用SocketServer.BaseServer。这有BaseServer.request\u queue\u size,默认值为5-我在app engine中找不到任何超过此值的内容,因此我猜google app engine服务器的开发上限为5个连接
使用regedit并转到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet设置
“MaxConnectionsPerServer”=dword:00000010
“MaxConnectionsPer1\u 0Server”=dword:0000010
这表明IE将尝试同时打开多达10个连接。我编辑了这两个键,把它们改成2,然后重新启动计算机,问题就解决了