うちの社内サーバで使っているDojo Toolkitはバージョン0.4.3のままで、0.9や1.0へはバージョンアップが面倒なのでそのままになっていました。しかし、IE8 Beta2での不具合とか、10月になってDojo Toolkitの1.2.0が出たりして、そろそろ移行を本気で考えないとダメだな。よっこらしょっと、できる範囲でやってみましたので、そのメモです。
とりあえず現行0.4.3で動いているやつの修正で、自分の使わない関数しか調べていませんし、調べ方もAPIのページとソースを直接見るだけなので、ちゃんとマニュアルを読んだスマートな方法じゃないということを先に記述しておきます。
あと、今、APIのページはメンテナンス中とのことでつながらないですね。こちらからダウンロードできるとのことですが、api-staging.dojotoolkit.orgなら見られますので、こっちにリンクしておきます。
dojo.cookie
dojo.cookie APIのページ
使用するには
dojo.require("dojo.cookie");
で読み込み指定が必要。
Cookieをあつかう関数で、前は設定、取得、削除でdojo.io.cookie.setCookie、dojo.io.cookie.getCookie、dojo.io.cookie.deleteCookieとそれぞれ分かれていましたが、dojo.cookieひとつでまかなうようになっています。
設定するとき
dojo.cookie(name, value);
有効期限5日で設定するとき
dojo.cookie(name, value, {expires: 5});
値を取得
var value = dojo.cookie(name);
削除するとき
dojo.cookie(name, null, {expires: -1});
dojo.byID
dojo.byId APIのページ
dojo.byId('dom')は0.4の頃と同じでそのまま使えます。
XMLHttpRequest
dojo.xhr APIのページ
dojo.io.bindはdojo.xhrになって、methodを引数で指定するのもありですが、methodの違いによってdojo.xhrGet、xhrPost、xhrPut、dojo.xhrDeleteというショートカットもあります。
0.4の頃、以下のようにしていたのが
dojo.io.bind({ url: xmlurl, method: "POST", content: { name1: value1, name2: value2 }, mimetype: "application/xml", load: function(type, data){ xmlsyori(data); }, transport: "XMLHTTPTransport", preventCache: true });
1.0では以下のようになります
dojo.xhrPost({ url: xmlurl, content: { name1: value1, name2: value2 }, handleAs: "xml", load: function(response, ioArgs){ xmlsyori(response); }, preventCache: true });
引数の内容はあまり変わっていないけども、mimetypeがhandleAsとか、loadのresponseの順序が逆とか、注意点はあります。
あと、widgetについて適用していったのですが、こちらはだいぶ変わっていててこずっています。また後日ということで。