def __mopemope__(self, *args, **kwargs): このページをアンテナに追加 RSSフィード

2006-02-04

[]Dojoのものすごく簡単な使い方。

勉強がてらさっそくすごく簡単なAjaxを作ってみました。

(初Ajaxです)

prototype.jsのものすごく簡単な使い方。 : blog.nomadscafe.jpとおんなじように

ボタンクリックしたら、Ajaxで別のファイルの内容を取りにいって、HTMLの一部をそれに置き換える」

というものを作ってみます。

HTMLを書きます。

test.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>sample</title>
<script type="text/javascript" src="/src/js/dojo.js"></script>

<script type="text/javascript">
	var djConfig = {isDebug: true};
	//djConfig.debugAtAllCosts = true;
</script>
<script type="text/javascript">
  dojo.require("dojo.io.*");
  function test(){
    var node = document.getElementById("blk");
    var bindArgs = {
      url: "test.txt",				
      load: function(type, data, evt){
        dj_debug(data);
     node.innerHTML = data;						
      },
    };				
  var canBind = dojo.io.bind(bindArgs);
  }
</script>
</head>
<body>
<p id="blk">ここがターゲット</p>
<input type="button" value="ボタン" onclick="test();"/>
</body>
</html>

test.txtってファイルをつくり

これが出ればOKちゃーん

とか書いておきます。

これで完成。

test.htmlを開いて、ボタンクリックしてみるとテキストの内容が変化するハズです。

簡単に説明ですが

まずファイルの頭の方で

<script type="text/javascript">
	var djConfig = {isDebug: true};
	//djConfig.debugAtAllCosts = true;
</script>

としていますがこれがDEBUGの設定になります。

これをtrueにしておくと

      load: function(type, data, evt){
        dj_debug(data);

でdataの中身を画面に出力します。

開発時には重宝しますので是非使いましょう。

で次

<script type="text/javascript">
  dojo.require("dojo.io.*");

としていますがこれはDojoの他のライブラリインポートする際に記述します。

上記だと"dojo.io.*"に属しているライブラリインポートされ使用できます。

AjaxなのでWebI/O系をインポートしています。)

JSANみたいなものと思ってもらえればよいと思います。

Dojoは全体だと大変大きいライブラリなので使用するライブラリのみインポートして使うようにしましょう。

(全部だと読み込むのに時間がかかりすぎてしまいます)

で実際にAjaxを行っているのはここです。

dojo.io.bind(bindArgs);

boind関数は渡されたパラメータを元に通信を行ってデータを取得するメソッドです。

渡すパラメータ

    var bindArgs = {
      url: "test.txt",				
      load: function(type, data, evt){
        dj_debug(data);
     node.innerHTML = data;						
      },
    };				

簡単に説明すると

url:はURLを表すパラメータです。今は"test.txt"の内容を取得するので"test.txt"としています。

load:は呼ばれたときに実行するファンクションを登録します。

"type"には実行された結果、"data"には取得データが入ってきます。

(evtはよくわからん)

今の場合は取得した"data"を"node"にセットしています。

("node"は"blk"って名前の要素なのでその値が変わります。)

prototype.jsAjax.Updapterに当たるようなものがあるのかも知れないのですがちょっとまだわかってません。

知ってる方いれば教えてください。

うくく。

追記

JSON編も書いてみる

Dojoのものすごく簡単な使い方 JSON編 - def __mopemope__(self, *args, **kwargs):

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/mopemope/20060204/1139068327