ノンサーバーサイドでpjaxを使う

jquery.pjaxを利用した遷移を作ろうとして、いろいろ調べていたら、RubyやらPHPやらのサーバーサイドのプログラム含めた開発記事はそこそこヒットするんだけど、サーバーサイド使わずに静的ファイルだけでも使えないのかと思って調べてみました。

結果から言うと可能です。以下の書き方で出来ます。

まずはHTMLにjqueryjquery.pjaxを読み込む

<script src="./js/jquery-1.8.1.min.js" charset="utf-8"></script>
<script src="./js/jquery.pjax.js" charset="utf-8"></script>

次にJavaScriptを記述

//pjaxというクラス付きのaタグをクリックした時に#mainを#mainで置き換える
//$('body').pjax('a.pjax', '置換先セレクタ', {fragment: '読み込んだHTMLから抽出する部分のセレクタ'})
$('body').pjax('a.pjax', '#main', {fragment: '#main'})

こんな感じ。
書き方が新しくなっているようで、bodyに関してはよくわからずなので、もうちょい調べる予定。
取り急ぎメモ!

https://github.com/defunkt/jquery-pjax

iOSでネットワーク通信。同期通信版

iPhoneアプリを作っていて、APIからデータを取得するメモ。
同期通信版です。

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    @autoreleasepool {
        //読み込みの設定
        NSString *url = @"data.json";
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
        NSURLResponse *response = nil;
        NSError *error = nil;
        
        //データの読み込み
        NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    }

NSJSONSerialization を使う

iOS5からJSONが簡単に扱えるようになったらしいのでメモ。
通信は同期にて読み込み。非同期での読み込みはこちら

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    @autoreleasepool {
        //読み込みの設定
        NSString *url = @"https://api.instagram.com/v1/media/popular?client_id=1189b47b85e840349cb51e2792fb9c88";
        NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
        NSURLResponse *response = nil;
        NSError *error = nil;
        
        //データの読み込み
        NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
        
        //JSONをNSDictionaryに変換
        NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
        
        //NSDictionaryを見る
        NSLog(@"jsonObject = %@", [[jsonObject objectForKey:@"meta"] objectForKey:@"code"]);
    }
}