なんとなくAjax ~新しくて古いXMLHttp 川合孝典(Kansai.pm) 1 2005/5/22 場面1 郵便番号で住所指定 住所を入力する 年賀状ソフトだったら? 郵便番号で検索して入力できる Webでは?あまり一般的ではない。 郵便番号データは手に入る 画面遷移が面倒なことになるから… 2 場面2 メールアドレスのチェック ブラウザで入力チェクできる JavaScriptを使えば サーバでもチェックが必要 ブラウザ以外のものを使っている ブラウザでJavaScriptがきられている ※サーバとブラウザでチェック結果が異なるかも JavaScriptからサーバロジックを呼べたら? 3 AJAX =Asynchronous JavaScript+XML ブラウザのJavaScriptからサーバの処理を 呼び出し、画面遷移なく表示を書き換える 同期的でも、HTMLやプレーンテキストでも DHTMLで表示を切り換える 代表例:Google Maps、Google Suggest 4 AJAXとXMLHttpオブジェクト XMLHttpオブジェクト XML解析エンジン、HTTP通信 同期、非同期の両方をサポート ブラウザの核になる部分 IE、FireFoxにも実装 5 AJAXのメリット(1) ブラウザからサーバを利用できる サーバのリソースが利用できる データベースなど 郵便番号の例 ロジックの共通化 サーバ、ブラウザ メールアドレスの例 異なるページ 新しいページに住所入力を入れることも簡単 6 AJAXのメリット(2) 画面遷移なしにサーバを利用できる 画面表示のスピードアップ ロジックが簡単になる 受動的だったブラウザが能動的に C/Sに近い記述ができる Webアプリ特有の面倒くささが減る データの持ちまわし 画面遷移と処理の関連付け 7 AJAXを実現するには ブラウザ側=JavaScript サーバ側=言語は問わない DHTMLによる表示切替 処理ロジック サーバ、ブラウザ間のI/F 主にデータの渡し方 テキスト、XML(XMLRPC、SOAPなど) JavaScript: Jsolait、JSONなど 8 Perlを使うメリット 現在のWebアプリで広く使われている CPANモジュールが利用できる 利用できる環境が多い 既存のロジックを使いまわせる 入力チェックが充実 簡単に記述できる 普通に関数を書くだけで実現 XMLRPC::Liteの実装 9 実装例 zipAddrRpc.htmlの場合 ブラウザ: XMLHttpをベースに自前のXMLRPC関数 サーバ: XMLRPC::Liteを利用 10 実装上の注意点 ブラウザによってXMLHttpが若干異なる 他のサーバの処理を呼び出すとき ライブラリが吸収するはず →独自に書くとき注意 警告メッセージが表示される サーバで中継すれば回避可能 漢字の文字コード、改行に注意 バイナリで扱えば問題ないか? 11 今後の期待 XMLHttp自身は新しいものではない APサーバとしてのWeb Webサービスが定着していない 郵便番号検索 旅行予約の実験 利用が広まる!? キラーアプリは何か? 12
© Copyright 2024 ExpyDoc