DOJO包括来自CDN的脚本

时间:2009-08-28 21:28:09

标签: firefox dojo

目前我正在尝试从这两个CDN(内容分发网络)来源中包含Dojo:

1)o.aolcdn.com/dojo/1.3.2/dojo/dojo.xd.js

2)ajax.googleapis.com/ajax/libs/dojo/1.3.2/dojo/dojo.xd.js

似乎有些时候,Firefox 3.5拒绝加载dojo库。 我在执行“dojo.require”语句时看到Firebug控制台中的错误,例如“dojo未定义”。同样来自Firebug并转到“Net”选项卡,并且看不到任何尝试从上面的dojo库加载的历史记录。

然而,我可以在IE7中打开同一页面并且它可以工作。我在FireFox中刷新了缓存,并将其杀死并重新打开(但我使用的是恢复上一页选项)。

今天有一次,当我从AOL 1.3.2切换到1.1时,它工作了一次,然后再也没有工作过。

谢谢, 尼尔

1 个答案:

答案 0 :(得分:2)

听起来像时间问题。你确定你做CDN对吗?诀窍是你不能立即使用dojo.require()中的文件中定义的内容 - 它们将被异步加载。

基于CDN的应用程序的基本结构如下:

<script src="to/dojo/cdn"></script>
<script>
  dojo.require("dojo.this");
  dojo.require("dojo.that");
  // more dojo.require()
  // you cannot use dojo.this and dojo.that here
  dojo.addOnLoad(function(){
    // this is crucial: do everything in dojo.addOnLoad();
    // now use dojo.this and dojo.that
    dojo.this(dojo.that);
  });
</script>

为了排除故障,您可以做一件事:编写一个最小的网页,使用您喜欢的CDN加载Dojo并且什么也不做。在Firefox中打开它,打开Firebug并手动输入一些简单的Dojo调用以查看它是否适合您。如果没有,请切换到“网络”选项卡,查看已拨打的电话,时间和结束方式。