* prototype.js [#s8be96cf]
** 普通にAjaxでデータ取得 [#f78b1544]
- Ajax.Requestクラスを使用する。
- test.txtでなくtest.xmlでも同様に動作する。ライブラリが勝手に処理してくれるようだ。

 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script src="lib/prototype.js"></script>
 <script>
 function getData() {
   var ajx = new Ajax.Request(
     'http://192.168.0.100/~ryuichi/ajax/test.txt',
     {
       method: 'get',
       onComplete: show
     }
   );
 }
 function show(req) {
   $('result').innerHTML = req.responseText;
 }
 </script>
 </head>
 <body>
 <input type="button" value="ok" onClick="getData()">
 <div id="result"></div>
 </body>
 </html>
** 次に読み込み中の表示を加える。 [#a3a813f3]
- 分かり易いようにsleepをかけたtest.phpを使用する。
- Ajax.Responders.registerを使用する。

test.php:
 <?
 sleep(1);
 print "HELLO\n";
 ?>

test.html
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script src="lib/prototype.js"></script>
 <script>
 var globalHandler = {
    onCreate: function () {
      Element.show('working');
    },
    onComplete: function () {
      if (Ajax.activeRequestCount == 0) {
        Element.hide('working');
      }
    }
 };
 Ajax.Responders.register(globalHandler);
 function getData() {
   var ajx = new Ajax.Request(
     'http://192.168.0.100/~ryuichi/ajax/test.php',
     {
       method: 'get',
       onComplete: show
     }
   );
 }
 function show(req) {
   $('result').innerHTML = req.responseText;
 }
 </script>
 </head>
 <body>
 <input type="button" value="ok" onClick="getData()">
 <div id="working" style="display:none">WORIKING ...</div>
 <div id="result"></div>
 </body>
 </html>

** Ajaxで返って来た文字列を表示するだけなら、もっと楽に出来る [#q2ce4325]
- Ajax.Updaterを使う。

 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script src="lib/prototype.js"></script>
 <script>
 var globalHandler = {
    onCreate: function () {
      Element.show('working');
    },
    onComplete: function () {
      if (Ajax.activeRequestCount == 0) {
        Element.hide('working');
      }
    }
 };
 Ajax.Responders.register(globalHandler);
 function getData() {
   var ajx = new Ajax.Updater(
     'result',
     'http://192.168.0.100/~ryuichi/ajax/test.php',
     {
       method: 'get',
     }
   );
 }
 </script>
 </head>
 <body>
 <input type="button" value="ok" onClick="getData()">
 <div id="working" style="display:none">WORIKING ...</div>
 <div id="result"></div>
 </body>
 </html>


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS