2011年6月18日土曜日

jQuery ajaxでXMLとかJSONとかJSONPとか取得 - 2

今回はJSONPの取得。

JSONP…scriptタグを使用してクロスドメインなデータを取得する仕組み。

通常ブラウザなどに実装されている「同一生成元ポリシー(SOP)」という制約により、 Webページは自分で生成したドメイン以外のドメインのサーバと通信することはできない。

じゃどうするか、というとサーバ側ではまず

  1. 読み込ませたいJSONデータを任意の関数の引数として定義
  2. そのデータをxxx.jsonpみないにファイルに保存
を行う。
一方の呼び出し側では

  1. javascriptタグのsrcにxxx.jsonpを指定
  2. サーバ側の任意の関数を定義

する。

そうすることで呼び出し側からは、SOPの制約に引っかかることなくデータを取得できるようになる。

ではこれをjQueryをつかったら~、ということで以下ソースなど。

読み込まれるデータ
cb({"familylist":[
  {
  "name":"磯野",
  "father":"波平",
  "children":[
    "child":"サザエ",
    "child":"カツオ",
    "child":"ワカメ"
    ]
  },
  {
  "name":"さくら",
  "father":"ヒロシ",
  "children":[
    "child":"さきこ",
    "child":"ももこ"
    ]
  }
]})

jQueryでの読み込み処理

// ロード時に呼び
$(window).load(function(){
  $.ajax({
    type: "GET",         // HTTP通信 GET/POST
    url: "http://xxxxx/familylist.jsonp?callback=cb",   // リクエストURL
    dataType: "jsonp",    // データ型 xml/json/jsonp/script/text
    jsonp: "cb"  // コールバック関数
  });
});

// コールバック関数
function cb(json){

  // ループ処理 Family要素でループ
  for( i = 0; i < json.familylist.length; i++ ) {

    $("#familyList").append(json.familylist[i].name);
    $("#familyList").append("父:" + json.familylist[i].father);

    // 子供でループ
    for( j = 0; j < json.familylist[i].children.length; j++ ){

      $("#familyList").append("子:" + json.familylist[i].children[j].child + "
");
    }

  }
}


// 以下に書き込まれる

以上でOK!!


これでJSONP用にデータを提供したいときの定義方法もわかった。
それと何よりjQueryを使用するとチョー簡単にリクエストが作れるってことが
改めてわかった。当分はこれ使えそう。

以上

jQuery ajaxでXMLとかJSONとかJSONPとか取得 - 1

JavascriptのライブラリjQueryでXMLとかのデータを取得するまとめ。

jQuery・・・JavaScriptHTMLの相互作用を強化する軽量なJavaScriptライブラリ
         ライブラリでは一番有名かも。

今回はjQueryでXMLファイルの読み込み。
基本jQueryのajax関数を使用してデータを取得し、それを要素にappendしていく。


  波平
  
    サザエ
    カツオ
    ワカメ
  


  ヒロシ
  
    さきこ
    ももこ
  



ではよくある読み込み処理

// ロード時に呼び
$(window).load(function(){
  $.ajax({
    type: "GET",         // HTTP通信 GET/POST
    url: "sample.xml",   // リクエストURL
    dataType: "xml",    // データ型 xml/json/jsonp/script/text

    // 成功時に呼び出せる処理
    success: function(xml) { readXML(xml); }
  });
});

// 読み込み処理
function readXML(xml){
  // ループ処理 Family要素でループ
  $(xml).find("family").each(function(){
    $("#familyList").append($(this).attr("name"));
    $("#familyList").append("父:" + $(this).find("father").text() + "
");
    // 子供でループ
    $(this).find("child").each(function(){
      $("#familyList").append("子:" + $(this).text() + "
");
    });
  });
}

// 以下に書き込まれる

今回はここまで

2011年6月17日金曜日

GAE(Google App Engine) 環境構築-2 プロジェクト作成とデプロイ

今回はEcipseでのGAEのプロジェクト作成と作成したプロジェクトの
クラウドへのデプロイまで。

以下手順
  1. Eclipse用意
  2. Eclipse plugin(google plugin)とSDKインストール
  3. EclipsePluginの設定
  4. プロジェクト作成
  5. Eclipseで動作確認
  6. ディプロイ
  7. クラウドで動作確認
=== ①Eclipse用意 ===
http://mergedoc.sourceforge.jp/

3.6 Helios使用しましょ。

=== ②Eclipse plugin(google plugin)とSDKインストール ===
Eclipseのメニュ->ヘルプ->新規ソフトウェアのインストール
で以下のパスを指定

http://dl.google.com/eclipse/plugin/3.6

ここからgoogleのSDKとPluginをインストールする。

=== ③プロジェクト作成 ===
Eclipseのウィンドウ->設定->Google->Appエンジンにインストールしたプラグインのパスを設定。
Eclipseがインストールされているディレクトリのplugins->com.google.appengine.eclipse.sdkbundle.1.4.2_1.4.2.v201102111811
を指定。





=== ④プロジェクト作成 ===
ではやっとプロジェクトの作成。
ファイル->新規->Web アプリケーション・プロジェクトでプロジェクト作成

以下の画面でプロジェクト名とパッケージ名を指定し完了でプロジェクト作成。



=== ⑤Eclipseで動作確認 ===
とりあえず何も修正せずにコンパイルしてローカルで動作確認をする。


まずコンパイルする必要があるので、Eclipseのツールバーに出ている
以下のボタンを押下。


以下の画面でそのままコンパイル実行。


あとはEclipseのプロジェクトを右クリックし、実行。


http://localhost:8888/でアクセス可能!


=== ⑥ディプロイ ===
いよいよデプロイ。
デプロイはチョー簡単。

⑤のiconの一番右のAppエンジン・プロジェクトのデプロイを押下。


作成したプロジェクトを選択し、googleアカウントで登録したメールアドレスと
パスワードを設定しApp Engin project settingsを押下

アプリケーションIDにGAEのアプリに登録した名前を指定しOK押下。

最後に配置ボタンを押下。
するとコンソールにアップしてます的なログが次々に出てきて以下がでたらOK!!

Deployment completed successfully


=== ⑦クラウドで動作確認 ===

以下のサイトの管理画面のCurrent Versionにある数字をクリックして④のEclipseからの
実行画面と同じものが表示されればOK!!

https://appengine.google.com/


以上

2011年6月16日木曜日

Redmine 入門 やら アジャイルやら

今のプロジェクトにRedmineを使ってみよう。
まえのプロジェクトでも使っていたけど、利用者側だったので今回は管理者として
いろいろためしてみたい。ついでにRailsの勉強にもなるし。

ということでとりあえずRuby環境を構築。

インストールしたのはall-in-oneの
すぐに使えるのがいい。

で参考にしているのが以下のサイト。

3年使ったRedmineの使い方について共有したい10のこと

アジャイルって前から興味があったけど、これから少しずつ勉強していこう。

2011年6月15日水曜日

GAE(Google App Engine) 環境構築-1 アカウント生成とアプリ登録まで

GAE(Google App Engine)の開発環境構築と新規プロジェクト作成までを今一度まとめてみようかと。というか本格的にGAEを使用することになったところが本音ですが。

で以下、まずはGAE側(クラウド側)の準備としての、アカウント作成からアプリ登録までの手順
  1. Googleアカウント作成
  2. GoogleAppEngineへログイン
  3. CreateApplicationから認証コード発行
  4. 認証処理
  5. アプリ登録

=== ①Googleアカウント作成 ===
GAEはGoogleのクラウド環境で動作するサービスなんで、まずはGoogleのアカウントを取得する必要がある。
https://www.google.com/accounts/ServiceLogin?service=ah&passive=true&continue=https://appengine.google.com/_ah/conflogin%3Fcontinue%3Dhttps://appengine.google.com/&ltmpl=ae

以下サイトのアカウント作成をクリック

アカウント作成するための情報入力


=== ②GoogleAppEngineへログイン ===
作成したアカウントでログインする。

以下の画面が表示される。
=== ③CreateApplicationから認証コード発行 ===

②画面のCreateApplicationを押下し新規アプリ生成の準備をする。

ここで注意がGAEを使用するにあたり、一番最初だけ認証コードを発行する必要あり。
そのためには携帯電話に認証コードを送信する必要あり。
これが嫌なら登録できません。。(特に悪用されることはないはず)

=== ④認証処理 ===
送られた認証コードを以下の画面に入力して認証完了。

=== ⑤アプリ登録 ===
以下の画面で新規作成するアプリ名を登録する。

特に考えていない場合は、次回からは③のCreateApplicationボタンを押下すると
⑤の画面から始まるのでその時に登録すればよし!

以上

試験結果

昨日の夜、CGーArtsエンジニアのベーシック、エキスパートの自己採点をした。 実は日曜日には回答が出ていたけど、自信がなく採点するのもやめようかと思っていたがタイミング&勢いでやってしまった。 <結果>  ベーシック:85点  エキスパート:72.5点 70点以上で合格なので...