prototype.js × Ajax
次はprototype.jsでのAjaxのお勉強。
Ajax.Requestでxmlを指定して取ってきた
第一引数:リクエストするURL
第二引数:各種オプション(コールバックとか)
<div id="result"></div> <script type="text/javascript"> // Ajax.Requestオブジェクトを生成 new Ajax.Request('sakos.xml', { method: 'get', onSuccess: showSako }); // Ajax.Requestの結果を受け取る関数 function showSako(response){ var sakos = response.responseXML.getElementsByTagName('sako'); for(var i=0;i<sakos.length;i++){ $('result').innerHTML += '<li>' + sakos[i].getAttribute('name').escapeHTML() + '</li>'; } } </script> <?xml version="1.0" encoding="UTF-8"?> <sakos> <sako name="さこちゃん"/> <sako name="http://www.sakochan.net"/> <sako name="http://d.hatena.ne.jp/osk__12/"/> </sakos>
他にも、Ajax.Updaterでhtmlを取ってくるのも試してみた
第一引数:取得したHTMLを流し込む要素のid属性
第二引数:リクエストするURL
<div id="result"></div> <script type="text/javascript"> new Ajax.Updater('result', 'sako.html', { method: 'get' }); </script> </script>
Ajax.RequestとAjax.Updaterの違いは、
Ajax.RequestはXMLHttpRequestを簡単に扱うための汎用的なオブジェクトで、
Ajax.UpdaterはサーバがHTMLを返す場合に、特定要素をサーバが返却するHTMLで置き換えたいというケースで使用するオブジェクト
らしい。うーむ、むずかしい