08
May

MySQL将继续开源

MySQL负责开源社区的副总裁Kaj Arnö在blog中写道:MySQL今后将继续保持所有功能的开源,包括MySQL Connectors、存储引擎,以及MySQL6.0中新增的备份功能、MyISAM备份驱动、加密和压缩存储也将开源。
在blog中,Kaj Arnö提到,做出此决定是因为MySQL已经从当初想独立上市的路线转换出来,变成了SUN的一部分。他还提到了MySQL的两条发展路线:openness, and the business model.
原文见 http://blogs.mysql.com/kaj/2008/05/06/mysql-server-is-open-source-even-backup-extensions/

17
Apr

dojo1.1的主要更新

原作者 Kenny,转载请注明出自 http://www.fyting.com,非常感谢。

dojo1.1发布也有些时日了,今天静下来看了看到底有哪些更新以及对项目的影响,顺便把release notes大体翻译了过来。

Core

dojo.fromJson解析失败时,会抛出error,需要程序员手动try、catch

        var result = text;
        try{
         result = dojo.fromJson(text);
        }catch(e){
         // squelch exception, use input as result
        }

多版本支持

dojo1.1可以与其他版本的dojo共存,甚至可以修改dojo的库名称,详细见:Dojo Book Page on multiversion support

在DOM载入后再加载dojo

设置djConfig.afterOnLoad = true,这是测试页面 没感觉到这个功能的用处,并且在DOM载入后如果移动鼠标有可能引起javascript,整个dojo都无法载入。

XMLHttpRequest的变化

以前那一堆dojo.xhrGet(), dojo.xhrPost(), dojo.xhrRawPost(), dojo.xhrPut(), dojo.xhrRawPut() 还有 dojo.xhrDelete(),现在终于有了一个通用的函数:dojo.xhr()。

使用dojo.xhr*将发送名为“X-Requested-With”的http header,值为“XMLHttpRequest”

cacheBust

如果设置djConfig.cacheBust = (new Date()).getTime(),载入模块和模板时,将把这个cacheBust的值将添加到URL中,防止浏览器缓存。在1.0里面其实已经存在,也是个不知所云的功能。

dojo.attr()

新增加dojo.attr(),dojo.hasAttr(),还有dojo.removeAttr()函数,用于获取DOM节点的attribute

    var d1 = dojo.byId('div1');
    console.debug(dojo.attr(d1,"id"));
    console.debug("div1 has age?" + dojo.hasAttr(d1,"age"));
    dojo.attr(d1,"age",18);
    console.debug("div1 has age?" + dojo.hasAttr(d1,"age"));
    console.debug(dojo.attr(d1,"age"));

dojo.style()

dojo.style现在可以一次性设置多个css属性,以前是这样的:

    dojo.style(dojo.byId('div2'),"width","700px;");
    dojo.style(dojo.byId('div2'),"height","600px;");

现在可以这样了:

    dojo.style(dojo.byId('div2'),{
        width:"700px",
        height:"600px",
        background:"#ccf"
    });

dojo.query/NodeList

dojo.query()结果可以使用attr()、instantiate(),还有之前就可以使用的style()也可以使用上面的那种dojo.style()的用法了。

    dojo.style("thinger", {
        "opacity": 0.5,
        "border": "3px solid black",
        "height": 300
    });

动画/animation

修正了动画效果的性能问题,增加了一个新的dojo.anim()方法,默认的duration从1秒变成了350ms,简化了指定动画属性的语法。另外重写了dojo.fx.combine()和dojo.fx.chain()的集成,现在集成不同的动画效果更加简单。
dojo.anim("id", { opacity: 0 }, 1000);

Adobe AIR的支持

1.1里面dojo提供了更好的AIR支持。http://www.dojotoolkit.org/air

阅读全文…

01
Jan

dojo Quick Start

以前的文章了,先转过来凑数,以后将只在这里更新~~~

原作者: Kenny 转载请注明出自 http://www.fyting.com,谢谢

2006年初,dojo还是0.22的时候就很关注它的发展,可一直没有在实际项目中使用。一来是由于文档的缺少,而来是dojo的相关介绍总是让人望而生畏。到现在都如此,第一个hello world就搞了一大堆东西,比如widget组件,自定义的script标签等,加上要引入什么css文件,djConfig、dojo.require等等,让人很迷惑,这么复杂,到底dojo该怎么使用呢?我只是想把dojo当作一个普通的js类库,就像prototype那样?OK,闲话少说,来看看如何使用dojo。

首先,引入dojo.js

dojo的发行包里有4个子目录
假设你是这样的目录结构:

project
|
+–dojo-lib
| |
| +–dijit
| +–dojo
| +–dojox
| +–util
|
+–dojo_hello_world.html

要引入的文件是名叫”dojo”的子目录里的dojo.js

<script type="text/javascript" src="./dojo-lib/dojo/dojo.js">
</script>

开始使用dojo

现在开始使用dojo的第一个函数:dojo.byId
dojo.byId就等同于常用的document.getElementById

<input type="text" name="username" id="username" value="Mark" /> 
<script type="text/javascript"> 
var username = dojo.byId('username').value 
alert(username); 
</script>

OK,是不是和普通的js库一样,没有任何玄机?

dojo.addOnLoad

现在我们想在window.onload里面处理一点东西,就像Ext.onReady,这个东西在dojo里叫做dojo.addOnLoad

dojo.addOnLoad(function(){   
    var username = dojo.byId('username').value   
    alert(username);   
});

dojo.connect

OK,window.onload搞定了,那么如何监听普通的dom事件呢?没问题,强大的dojo.connect出场

<script type="text/javascript">   
function sayHello(event)   
{   
    alert("Hello");   
}   
dojo.addOnLoad(function(){   
    var btn = dojo.byId('hello');   
    dojo.connect(btn,"onclick",sayHello);   
});   
</script>   
<input type="button" id="hello" value="Hello" />

是不是和prototype的Event.observe($(’btnAdd’), “load”, doAdd)差不多?
用prototype时最烦的就是那个长长的bindAsListener了,使用dojo.conncect,可以在第三个参数中指定当前的scope:

var name = "Mark"  
function sayHello()   
{   
    alert("Hello " + this.name);   
}   
var obj = {   
    name: "Karl"  
}   
dojo.addOnLoad(function(){   
    var btn = dojo.byId('hello');   
    dojo.connect(btn,"onclick",obj,sayHello);//注意这行的第三个和第四个参数   
});

OK,点击按钮,将输出:Hello Karl
这里dojo.connect的第三个参数变成了scope,而handler函数是第四个,实际上
dojo.connect(btn,”onclick”,sayHello);

dojo.connect(btn,”onclick”,null,sayHello);
相同。
更加复杂的用法这里不作介绍,写太多就越搞越复杂了,后面再写文章详细介绍dojo.connect,这里只简单介绍如何绑定DOM事件。

xmlhttp dojo.xhrGet

OK,介绍了简单的DOM操作方法,接下来该到Ajax的传统项目-XmlHttp了
在使用xmlhttp时,需要注意到编码的问题,要让dojo默认绑定为utf-8怎么办呢?很简单,只需要修改一下引入dojo.js时的标签:
阅读全文…

    订阅

    页面

    分类

    关于

    标签云

    最新日志

    朋友

    其他