文章目录

翻译至dojo的FAQ只是节选了一些比较容易碰到的问题,还有一些自己遇到的问题,希望对大家有帮助:

1.为啥IE会说有个语法错误?

很有可能你是在列表后面多了个逗号如下所示:

var request = dojo.io.bind({
url: this.actionURL,
method: ‘get’,
content: {
id: this.rowId,
field: this.dbField,
value: this.checkbox.checked
}, <—- 这就是你多的逗号
});

或Or:

var foo = [ 1 , 2, 3, ];

或:

var obj = {
apple: "delicious",
brussel sprouts: "yucky",
};

这个问题很普遍,而且在Firefox下是可以解析的,而在IE下会使整段script代码失效,这样调试起来也很麻烦,着实让人郁闷.

2.为啥页面载入的这么慢?

一些用dojo.require()载入的资源是通过同步XHR来从服务器来读取的?这在开发的时候很方便,但在部署的时候就会出现网页载入很慢的问题.实际上可以用打包的方法来将一些经

常用的js打包到一个dojo.js中,然后在对这个dojo.js压缩一下,这样就会快很多(关于打包和压缩将会在以后具体说明).

3.dojo.addOnLoad 没有在页面载入后执行

为了使dojo.addOnLoad正确的执行,你需要将代码写在一个init函数中,然后再用dojo.addOnLoad执行,例下:

这个是不对的:dojo.addOnLoad(alert("this page is not yet loaded");
你应该这么写:
function init() {
alert("this page is fully loaded!");
}
dojo.addOnLoad(init);

alert方法应该写在init中,再用dojo.addOnLoad载入,才能被正确的执行.

dojo.addOnLoad在firefox中执行也有问题,有时在Document未解析完前就执行了,这样有些DomNode会取不到而出现问题,而在IE却是正常的…..看来这个问题也有待解决!
所以最好还是在一些DomNode的onload事情中执行函数才能在firefox和IE中都正常运行.

文章目录