阿木申 申楠

热衷编程技术 | 申楠 : qq:38371354 | msn:amushen2005@hotmail.com

导航

[dojo] dojo 0.9 的使用心得

Posted on 2007-07-09 10:41  阿木申  阅读(852)  评论(0编辑  收藏  举报

dojo0.9已经发布有一段时间了,研究dojo 0.9 也有一周的时间了吧。总想写一些什么,但是思路比较乱,不知从何说起。
dojo也许是将来的一个趋势,但是也许appolo可能会比他更有竞争力。到底dojo是夕阳技术,还是朝阳技术,等待历史的验证吧。
不过现在我们小组决定下一期的项目主要采用dojo来做界面,所以,还是先研究透了再说吧,况且,对我来说,dojo源代码比较亲切,研究起来也不怎么费劲。

我希望建一个dojo的中文网站,让dojo 在中国使用的人更多,因为它确是有很多代码写得不错。widget也就是0.9中的dijit很有竞争力,还有一些底层的方法,比如xml,加密,io,事件,异常,调试,图表(一般),页面特效等这些如果使用熟练的话,会给页面开发的人员带来很多的方便。如果使用得熟练,就能够比较接近cs的方式开发bs软件。

现在的可惜是:没有足够的javascript和dhtml的开发经验,很少有人能看懂dojo的源代码;没有一个很好的IDE支持dojo;dojo本身也在不断成长,所以,很多方法变化比较大。比如从0.4.3到0.9,变化太大了,导致我们所有的页面都要修改。io的变化也太大了,汗死了;dojo需要的js文件比较大,如果在互联网上使用,加载速度是一个问题,局域网内使用效果还不错;dojo的代码比较好理解,但是不够简练,这点是好也是坏啊。

dojo的官方网站有很多不错的资源,不过我想很少人愿意去研读它,大家希望的是,我想实现是么功能,马上就有现成的方案或者例子供我使用,只要简单修改一下,就可以ok。
dojo的mail list有很多答疑和讨论,不过我想很少人会主动订阅而且仔细分析。

我,现在有个理想:把dojo的关键资料,翻译一下;对dojo有意义的讨论翻译一下;对dojo源代码翻译一下啊;将一些常用的例子独立出来,使使用者能够节省开发时间.


先简单写个例子吧:
dojo0.9比dojo0.43要求更严格了:
1、要求引用parser类手工解析代码,或者script导入的时候 parseOnLoad: true,否则dojo的widget不能正常替换。
2、样式表,需要单独引用,默认有一个在:/js/dijit/themes/tundra/tundra.css这个位置,需要特别注意的是<body class="tundra">,否则也不能正常显示dijit
3、dojoType要求全程而且大小写敏感,比如:dojoType="dijit.form.Button"
其他的变化对一般开发没有太大的映像。一个helloworld的例子:

 1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 2        "http://www.w3.org/TR/html4/strict.dtd">
 3<html>
 4<head>
 5<title>Button Widget Dojo Tests</title>
 6<style type="text/css">
 7    @import "../js/dojo/resources/dojo.css";
 8    @import "../js/dijit/themes/tundra/tundra.css";
 9
</style>        
10<script type="text/javascript"
11    djConfig="parseOnLoad: true, isDebug: true"
12    src="../js/dojo/dojo.js"></script>
13<script type="text/javascript">
14    dojo.require("dijit.form.Button");
15
</script>
16<script>
17
18
</script>
19</head>
20<body class="tundra">
21<button id="b1" dojoType="dijit.form.Button" onclick="changeme()">HelloWorld</button> 
22<script>
23function changeme(){
24    //dijit.byId("b1").setLabel("hello dojo World");
25    dojo.byId("b1").value="hell dojo World ";
26}

27
</script>
28</body>
29</html>
30
31

要使用上面的代码,需要注意的是dojo.js存放的位置,一定要把路径存正确。

这个例子是一切dojo编程的开始,有了这个,您就可以简单替换<button>标签,来调用更丰富的dijit类了。
enjoy it
相关资料:http://www.dojocn.cn/