パーフェクトJavaScript
目次を公開します。紹介文は後日書きます。
はじめに 3
□□□□Part1 JavaScript〜overview 13
■■■1章 JavaScriptの概要 14
■■1-1 JavaScriptの見方 14
■■1-2 JavaScriptの歴史 15
■1-2-1 JavaScriptのトピック 15
■■1-3 ECMAScript 16
■1-3-1 JavaScriptの標準化 16
■1-3-2 見送られたECMAScript第4版 17
■■1-4 JavaScriptのバージョン 18
■■1-5 JavaScript処理系 18
■1-5-1 クライアントサイドJavaScriptコードの移植性 19
■■1-6 JavaScript実行環境 20
■1-6-1 コア言語 20
■1-6-2 ホストオブジェクト 21
■■1-7 JavaScript周辺環境 21
■1-7-1 ライブラリ 21
■1-7-2 ソースコード圧縮 22
■1-7-3 統合開発環境(IDE) 22
□□□□Part2 JavaScript言語仕様 23
■■■2章 JavaScriptの基礎 24
■■2-1 JavaScriptの特徴 24
■■2-2 表記について 25
■2-2-1 Print関数 26
■■2-3 変数の基礎 26
■2-3-1 変数の使い方 26
■2-3-2 varの省略 28
■2-3-3 定数 28
■■2-4 関数の基礎 29
■2-4-1 関数とは 29
■2-4-2 関数宣言と呼び出し 29
■2-4-3 関数リテラル 30
■2-4-4 関数はオブジェクト 32
■■2-5 オブジェクトの基礎 32
■2-5-1 オブジェクトとは 32
■2-5-2 オブジェクトリテラル式とオブジェクトの利用 32
■2-5-3 プロパティアクセス 33
■2-5-4 プロパティアクセス(ブラケット) 34
■2-5-5 メソッド 34
■2-5-6 new式 35
■2-5-7 クラスとインスタンス 35
■2-5-8 クラス機能の整理方法 36
■2-5-9 オブジェクトと型 36
■■2-6 配列の基礎 37
▽▽コラム イディオム 38
■■■3章 JavaScriptの型 39
■■3-1 型とは 39
■3-1-1 型に関してJavaとの比較 39
■3-1-2 基本型と参照型 40
■■3-2 組み込み型の概要 40
■3-2-1 JavaScriptの基本型 41
■■3-3 文字列型 41
■3-3-1 文字列値リテラル 41
■3-3-2 文字列型の演算 42
■3-3-3 文字列型の比較 44
■3-3-4 文字列クラス(Stringクラス) 45
■3-3-5 文字列オブジェクト 45
■3-3-6 文字列値と文字列オブジェクトの混乱の回避 47
■3-3-7 String関数呼び出し 47
■3-3-8 Stringクラスの機能 48
■3-3-9 非破壊的なメソッド 49
■■3-4 数値型 50
■3-4-1 数値リテラル 50
■3-4-2 数値型の演算 51
■3-4-3 浮動小数点数の一般的注意 51
■3-4-4 数値クラス(Numberクラス) 52
■3-4-5 Number関数呼び出し 53
■3-4-6 Numberクラスの機能 53
■3-4-7 境界値と特別な数値 54
■3-4-8 NaN 56
■■3-5 ブーリアン型 57
■3-5-1 ブーリアン値 57
■3-5-2 ブーリアンクラス(Booleanクラス) 58
■3-5-3 Booleanクラスの機能 59
■■3-6 null型 60
■■3-7 undefined型 60
■3-7-1 undefined値 61
■■3-8 オブジェクト型 62
■3-8-1 関数型 62
■■3-9 型変換 62
■3-9-1 文字列値から数値の型変換 63
■3-9-2 数値から文字列値の型変換 64
■3-9-3 型変換のイディオム 65
■3-9-4 ブーリアン型への型変換 66
■3-9-5 その他の型変換 67
■3-9-6 オブジェクト型から基本型への型変換 67
■3-9-7 基本型からオブジェクト型への型変換 68
▽▽コラム JavaScriptのプロファイラ 69
■■■4章 文、式、演算子 70
■■4-1 式と文の構造 70
■■4-2 予約語 70
■■4-3 識別子 71
■■4-4 リテラル表記 72
■■4-5 文とは 73
■■4-6 ブロック文(複合文) 73
■■4-7 変数宣言文 74
■■4-8 関数宣言文 74
■■4-9 式文 74
■■4-10 空文 75
■■4-11 制御文 76
■■4-12 if-else文 76
■■4-13 switch文 79
■■4-14 繰り返し文 82
■■4-15 while文 82
■■4-16 do-while文 84
■■4-17 for文 85
■4-17-1 for文のイディオム 86
■■4-18 for in文 87
■4-18-1 配列とfor in文 88
■4-18-2 for in文に関する注意点 89
■■4-19 for each in文 89
■■4-20 break文 90
■■4-21 continue文 90
■■4-22 ラベルを使ったジャンプ 91
■■4-23 return文 92
■■4-24 例外 93
■■4-25 その他 94
■■4-26 コメント 95
■■4-27 式 95
■■4-28 演算子 96
■■4-29 式の評価 96
■■4-30 演算子の優先順序と結合規則 97
■■4-31 算術演算子 98
■■4-32 文字列連結演算子 100
■■4-33 同値演算子 100
■■4-34 比較演算子 101
■■4-35 in演算子 102
■■4-36 instanceof演算子 103
■■4-37 論理演算子 103
■■4-38 ビット演算子 104
■■4-39 代入演算子 105
■■4-40 算術代入演算子 105
■■4-41 条件演算子(3項演算子) 105
■■4-42 typeof演算子 106
■■4-43 new演算子 106
■■4-44 delete演算子 106
■■4-45 void演算子 107
■■4-46 カンマ(,)演算子 107
■■4-47 ドット演算子とブラケット演算子 108
■■4-48 関数呼び出し演算子 108
■■4-49 演算子と型変換の注意点 108
■■■5章 変数とオブジェクト 109
■■5-1 変数の宣言 109
■■5-2 変数と参照 110
■5-2-1 関数の引数(値渡し) 112
■5-2-2 文字列と参照 113
■5-2-3 オブジェクトと参照にまつわる用語の整理 113
■■5-3 変数とプロパティ 114
■■5-4 変数名の解決 115
■■5-5 変数の存在チェック 115
■5-5-1 プロパティの存在チェック 116
■■5-6 オブジェクトとは 117
■5-6-1 抽象データ型とオブジェクト指向 117
■5-6-2 インスタンスの協調とオブジェクト指向 118
■■5-7 オブジェクトの生成 118
■5-7-1 オブジェクトリテラル 118
▽▽コラム 関数の多値の返り値を受け取るJavaScript独自拡張 121
■5-7-2 コンストラクタとnew式 121
■5-7-3 コンストラクタとクラス定義 123
■■5-8 プロパティのアクセス 124
■5-8-1 プロパティ値の更新 124
■5-8-2 ドット演算子とブラケット演算子の使い分け 125
■5-8-3 プロパティの列挙 126
■■5-9 連想配列としてのオブジェクト 126
■5-9-1 連想配列 127
■5-9-2 連想配列としてオブジェクトの注意点 128
■■5-10 プロパティの属性 129
■■5-11 ガベージコレクション 130
■■5-12 不変オブジェクト 131
■5-12-1 不変オブジェクトとは 131
■5-12-2 不変オブジェクトの有用性 131
■5-12-3 不変オブジェクトの手法 131
■■5-13 メソッド 133
■■5-14 this参照 134
■5-14-1 this参照の規則 134
■5-14-2 this参照の注意点 135
■■5-15 applyとcall 136
■■5-16 プロトタイプ継承 137
■5-16-1 プロトタイプチェーン 138
■5-16-2 プロトタイプチェーンの具体例 139
■5-16-3 プロトタイプ継承とクラス 141
■5-16-4 プロトタイプチェーンのよくある勘違いと__proto__プロパティ 142
■5-16-5 プロトタイプオブジェクト 142
■5-16-6 プロトタイプオブジェクトとECMAScript第5版 143
■■5-17 オブジェクトと型 144
■5-17-1 型判定(constructorプロパティ) 144
■5-17-2 constructorプロパティの注意点 144
■5-17-3 型判定(instanceof演算とisPrototypeOfメソッド) 145
■5-17-4 型判定(ダックタイピング) 146
■5-17-5 プロパティの列挙(プロトタイプ継承を考慮) 146
■■5-18 ECMAScript第5版のObjectクラス 148
■5-18-1 プロパティオブジェクト 148
■5-18-2 アクセッサ属性 150
▽▽コラム その他の型判定 152
■■5-19 標準オブジェクト 152
■■5-20 Objectクラス 153
▽▽コラム オブジェクトの互換性 155
■■5-21 グローバルオブジェクト 155
■5-21-1 グローバルオブジェクトとグローバル変数 156
■5-21-2 Mathオブジェクト 156
■5-21-3 Errorオブジェクト 157
■■■6章 関数とクロージャ 159
■■6-1 関数宣言文と関数リテラル式 159
■■6-2 関数呼び出しの整理 159
■6-2-1 関数宣言文の巻き上げ 159
■■6-3 引数とローカル変数 160
■6-3-1 argumentsオブジェクト 160
■6-3-2 再帰関数 161
■■6-4 スコープ 162
■6-4-1 Webブラウザとスコープ 163
■6-4-2 ブロックスコープ 163
■6-4-3 letとブロックスコープ 164
■6-4-4 入れ子の関数とスコープ 167
■6-4-5 シャドーイング 168
■■6-5 関数はオブジェクト 168
■6-5-1 関数名とデバッグ容易性 169
■■6-6 Functionクラス 170
■6-6-1 Functionクラスの継承 171
■■6-7 入れ子の関数宣言とクロージャ 172
■6-7-1 クロージャの表層的な理解 172
■6-7-2 クロージャの仕組み 173
■6-7-3 クロージャの落とし穴 177
■6-7-4 名前空間の汚染を防ぐ 178
■6-7-5 クロージャとクラス 181
▽▽コラム 式クロージャ 182
■■6-8 コールバックパターン 182
■6-8-1 コールバックと制御の反転 182
■6-8-2 JavaScriptとコールバック 183
▽▽コラム イベントリスナ風の実装 186
■■■7章 データ処理 187
■■7-1 配列 187
■7-1-1 JavaScriptの配列 187
■7-1-2 配列の要素アクセス 188
■7-1-3 配列の長さ 189
■7-1-4 配列の要素の列挙 190
▽▽コラム 配列の長さの上限 191
■7-1-5 多次元配列 192
■7-1-6 配列はオブジェクト 192
■7-1-7 Arrayクラス 194
■7-1-8 配列オブジェクトの意味 196
■7-1-9 配列のイディオム 196
■7-1-10 配列の内部 200
■7-1-11 配列風のオブジェクト 201
■7-1-12 イテレータ 202
■7-1-13 ジェネレータ 204
■7-1-14 配列の内包 206
■■7-2 JSON 207
■7-2-1 JSON文字列 207
■7-2-2 JSONオブジェクト 208
■■7-3 日付処理 209
■7-3-1 Dateクラス 210
■■7-4 正規表現 212
■7-4-1 正規表現とは 212
■7-4-2 正規表現の用語 213
■7-4-3 正規表現の文法 214
■7-4-4 JavaScriptの正規表現 216
■7-4-5 正規表現プログラミング 218
■7-4-6 文字列オブジェクトと正規表現オブジェクト 219
▽▽コラム ECMAScript第5版のstrict mode 222
□□□□Part3 クライアントサイドJavaScript 223
■■■8章 クライアントサイドJavaScriptとHTML 224
■■8-1 クライアントサイドJavaScriptの重要性 224
■8-1-1 Webアプリケーションの発達 224
■8-1-2 JavaScriptの高速化 225
■8-1-3 JavaScriptの役割 225
■■8-2 HTMLとJavaScript 226
■8-2-1 Webページを表示するときの処理の流れ 226
■8-2-2 JavaScriptの記述方法と実行タイミング 226
■8-2-3 実行タイミングまとめ 230
■■8-3 実行環境と開発環境 231
■8-3-1 実行環境 231
■8-3-2 開発環境 231
■■8-4 デバッグ 231
■8-4-1 alert 231
■8-4-2 console 232
■8-4-3 onerror 235
■8-4-4 Firebug, Web Inspector (Developer Tools), Opera Dragonfly 235
■■8-5 クロスブラウザ対応 237
■8-5-1 対応すべきブラウザ 238
■8-5-2 実装方法 239
■■8-6 Windowオブジェクト 242
■8-6-1 Navigatorオブジェクト 242
■8-6-2 Locationオブジェクト 242
■8-6-3 Historyオブジェクト 244
■8-6-4 Screenオブジェクト 244
■8-6-5 Windowオブジェクトへの参照 244
■8-6-6 Documentオブジェクト 245
■■■9章 DOM 246
■■9-1 DOMとは 246
■9-1-1 DOM Level 1 246
■9-1-2 DOM Level 2 247
■9-1-3 DOM Level 3 247
▽▽コラム DOM Level 0 248
■9-1-4 DOMの記述 248
■■9-2 DOMの基礎 248
■9-2-1 タグ、要素、ノード 248
■9-2-2 DOM操作 249
■9-2-3 Documentオブジェクト 249
■■9-3 ノードの選択 250
■9-3-1 IDによる検索 250
■9-3-2 タグ名による検索 251
■9-3-3 名前による検索 256
■9-3-4 クラス名による検索 256
■9-3-5 親、子、兄弟 257
■9-3-6 XPath 259
■9-3-7 Selectors API 262
■■9-4 ノードの作成・追加 263
■■9-5 ノードの内容変更 263
■■9-6 ノードの削除 264
■■9-7 innerHTML/textContent 264
■9-7-1 innerHTML 264
■9-7-2 textContent 264
■■9-8 DOM操作のパフォーマンス 265
■■■10章 イベント 266
■■10-1 イベント駆動型プログラミング
■■10-2 イベントハンドラ/イベントリスナの設定 266
■10-2-1 HTML要素の属性に指定する 267
■10-2-2 DOM要素のプロパティに指定する 268
■10-2-3 EventTarget.addEventListener()を利用する 269
■10-2-4 イベントハンドラ/イベントリスナ内でのthis 271
■■10-3 イベント発火 272
■■10-4 イベントの伝播 272
■10-4-1 キャプチャリングフェーズ 272
■10-4-2 ターゲットフェーズ 273
■10-4-3 バブリングフェーズ 273
■10-4-4 キャンセル 273
■■10-5 イベントが持つ要素 275
■■10-6 標準イベント 276
■10-6-1 DOM Level 2で定義されているイベント 276
■10-6-2 DOM Level 3で定義されているイベント 277
■■10-7 独自イベント 280
■■■11章 実践 クライアントサイドJavaScript 281
■■11-1 スタイル 281
■11-1-1 スタイル変更方法 281
■11-1-2 位置の指定 287
■11-1-3 位置 288
■11-1-4 アニメーション 290
■■11-2 Ajax 290
■11-2-1 非同期処理の利点 291
■11-2-2 XMLHttpRequest 291
■11-2-3 基本的な処理の流れ 292
■11-2-4 同期通信 293
■11-2-5 タイムアウト 294
■11-2-6 レスポンス 295
■11-2-7 クロスオリジン制限 296
■11-2-8 クロスオリジン通信 297
■11-2-9 JSONP 297
■11-2-10 iframeハック 298
■11-2-11 window.postMessage 301
■11-2-12 XMLHttpRequest Level 2 303
■11-2-13 クロスオリジン通信のセキュリティ問題 303
■■11-3 フォーム 303
■11-3-1 フォーム要素 304
■11-3-2 フォームコントロール要素 305
■11-3-3 内容の検証 306
■11-3-4 検証に利用できるイベント 307
■11-3-5 フォームを使ってページ遷移を発生させない方法 308
■■■12章 ライブラリ 310
■■12-1 ライブラリを使うべき理由 310
■■12-2 jQueryの特徴 310
■■12-3 jQueryの基本 311
■12-3-1 記述例 311
■12-3-2 メソッドチェーン 312
▽▽コラム メソッドチェーンのデメリット 314
■■12-4 $関数 314
■12-4-1 セレクタにマッチする要素を抽出する 314
■12-4-2 新しくDOM要素を作成する 314
■12-4-3 既存のDOM要素をjQueryオブジェクトに変換する 315
■12-4-4 DOM構築後のイベントリスナを設定する 315
■■12-5 jQueryによるDOM操作 315
■12-5-1 要素の選択 315
■12-5-2 要素の作成・追加・置換・削除 317
■■12-6 jQueryによるイベント処理 318
■12-6-1 イベントリスナの登録・削除 318
■12-6-2 イベント専用のイベントリスナ登録メソッド 320
■12-6-3 ready()メソッド 321
■■12-7 jQueryによるスタイル操作 321
■12-7-1 基本的なスタイル操作 321
■12-7-2 アニメーション 322
■■12-8 jQueryによるAjax 324
■12-8-1 ajax()関数 324
■12-8-2 ajax()のラッパー関数 325
■12-8-3 グローバルイベント 326
■■12-9 Deferred 326
■12-9-1 Defferdの基本 327
■12-9-2 状態遷移 328
■12-9-3 後続関数 329
■12-9-4 並列処理 331
■■12-10 jQueryプラグイン 332
■12-10-1 jQueryプラグインの利用 331
■12-10-2 jQueryプラグインの作成 333
■■12-11 他のライブラリとの共存 334
■12-11-1 $オブジェクトの衝突 334
■12-11-2 $オブジェクトの衝突回避 335
■■12-12 ライブラリの利用方法 336
□□□□Part4 HTML5 337
■■■13章 HTML5概要 338
■■13-1 HTML5の歴史 338
■13-1-1 HTML5の登場の経緯 338
■■13-2 HTML5の現状 339
■13-2-1 ブラウザの対応状況 339
■13-2-2 Webアプリケーションとネイティブアプリケーション 340
■■13-3 HTML5の概要 341
▽▽コラム ブラウザベンダーのHTML5情報ポータル 342
■■■14章 Webアプリケーション 343
■■14-1 History API 343
■14-1-1 History APIとは 343
■14-1-2 ハッシュフラグメント 343
■14-1-3 インターフェース 345
■■14-2 ApplicationCache 350
■14-2-1 キャッシュ管理について 350
■14-2-2 キャッシュマニフェスト 350
■14-2-3 ApplicationCache API 354
■14-2-4 オンラインとオフライン 356
■■■15章 デスクトップ連携 357
■■15-1 Drag Drop API 351
■15-1-1 Drag Drop APIとは 351
■15-1-2 インターフェース 358
■15-1-3 基本的なドラッグ&ドロップ 359
■15-1-4 表示のカスタマイズ 361
■15-1-5 ファイルのDrag-In/Drag-Out 364
▽▽コラム DataTransferItemList 366
■■15-2 File API 366
■15-2-1 File APIとは 366
■15-2-2 Fileオブジェクト 367
▽▽コラム <input type=”file”>のvalueについて 368
■15-2-3 FileReader 369
■15-2-4 data URL 373
■15-2-5 FileReaderSync 375
■■■16章 ストレージ 376
■■16-1 Web Storage 376
■16-1-1 Web Storageとは 376
▽▽コラム オリジンとは 377
■16-1-2 基本操作 378
■16-1-3 storageイベント 380
■16-1-4 Cookieについて 380
■16-1-5 ネームスペースの管理 381
■16-1-6 バージョンの管理 382
■16-1-7 localStorageのエミュレート 383
■■16-2 Indexed Database 384
■16-2-1 Indexed Databaseとは 384
▽▽コラム Web SQL Databaseについて 384
■16-2-2 インフラストラクチャ 384
■16-2-3 データベースに接続 385
■16-2-4 オブジェクトストアの作成 386
■16-2-5 データの追加・削除・参照 387
■16-2-6 インデックスの作成 389
■16-2-7 データの検索と更新 389
■16-2-8 データのソート 390
■16-2-9 トランザクション 391
■16-2-10 同期API 392
■■■17章 WebSocket 393
■■17-1 WebSocket概要 393
■17-1-1 WebSocketとは 393
■17-1-2 既存の通信技術 393
■17-1-3 WebSocketの仕様 397
■17-1-4 WebSocketの動作 397
■■17-2 基本操作 398
■17-2-1 コネクションの確立 398
■17-2-2 メッセージの送受信 399
■17-2-3 コネクションの切断 399
■17-2-4 コネクションの状態確認 400
■17-2-5 バイナリデータの送受信 401
■17-2-6 WebSocketインスタンスのプロパティ一覧 401
■■17-3 WebSocket実践 402
■17-3-1 Node.jsのインストール 402
■17-3-2 サーバサイドの実装 403
■17-3-3 クライアントサイドの実装 404
■17-3-4 クライアントサイドの実装2 405
■■■18章 Web Workers 408
■■18-1 Web Workers概要 408
■18-1-1 Web Workersとは 408
■18-1-2 Web Workersの動作 408
■■18-2 基本操作 409
■18-2-1 ワーカの生成 409
■18-2-2 メインスレッド側のメッセージ送受信 410
■18-2-3 ワーカ側のメッセージ送受信 410
■18-2-4 ワーカの削除 411
■18-2-5 外部ファイルの読み込み 411
■■18-3 Web Workers実践 412
■18-3-1 ワーカの利用 412
■18-3-2 ワーカの処理を中断する 414
■■18-4 共有ワーカ 416
■18-4-1 共有ワーカとは 416
■18-4-2 共有ワーカの生成 416
■18-4-3 共有ワーカのメッセージ送受信 417
■18-4-4 共有ワーカの削除 418
■18-4-5 共有ワーカの応用例 419
□□□□Part5 Web API 420
■■■19章 Web APIの基礎 422
■■19-1 Web APIとWebサービス 422
■19-1-1 Web APIが想定するシステム 422
■■19-2 Web APIの歴史 423
■19-2-1 スクレイピング 423
■19-2-2 セマンティックWeb 424
■19-2-3 XML 424
■19-2-4 Atom 425
■19-2-5 JSON 425
■19-2-6 SOAP 425
■19-2-7 REST 426
■19-2-8 簡単なまとめ 427
■■19-3 Web APIの構成 427
■19-3-1 Web APIの形態 427
■19-3-2 Web APIの利用 428
■19-3-3 RESTful API 429
■19-3-4 APIキー 430
■■19-4 ユーザ認証と認可 431
■19-4-1 Webアプリのセッション管理 431
■19-4-2 セッション管理とユーザ認証 432
■19-4-3 Web APIと権限 433
■19-4-4 認証と認可 435
■19-4-5 OAuth 436
■■■20章 Web APIの実例 439
■■20-1 Web APIのカテゴリ 439
■■20-2 Google Translate API 440
■20-2-1 準備 441
■20-2-2 動作概要 441
■20-2-3 Web APIの利用コード 442
■20-2-4 ウィジェット(Google Translate Element) 444
■■20-3 Google Maps API 445
■20-3-1 Google Static Maps API 445
■20-3-2 マイマップ 446
■20-3-3 Google Maps APIの概要 447
■20-3-4 Google Maps APIの簡単な例 447
■20-3-5 イベント 448
■20-3-6 Geolocation APIとGeocoding API 451
■■20-4 Yahoo! Flickr 452
■20-4-1 Flickr Web APIの利用 453
■20-4-2 FlickrのWeb APIの利用例 454
■■20-5 Twitter 456
■20-5-1 検索API 456
■20-5-2 REST API 457
■20-5-3 Twitter JS API @anywhere 458
■20-5-4 Twitter Widget 460
■■20-6 Facebook 460
■20-6-1 Facebookアプリの変遷 460
■20-6-2 FacebookのJavaScript API 463
■20-6-3 Facebookのプラグイン 464
■■20-7 OpenSocial 464
■20-7-1 OpenSocialの基本アーキテクチャ 465
▽▽コラム OpenSocialスペックの読み方とActivity 470
□□□□Part6 サーバサイドJavaScript 471
■■■21章 サーバサイドJavaScriptとNode.js 472
■■21-1 サーバサイドJavaScriptの動向 472
■■21-2 CommonJS 473
■21-2-1 CommonJSとは 473
▽▽コラム ホストオブジェクトに依存しないライブラリ 473
■21-2-2 CommonJSの動向 474
■21-2-3 モジュール機能 474
■■21-3 Node.js 477
■21-3-1 Node.jsとは 477
■21-3-2 nodeコマンド 482
■21-3-3 npmとパッケージ 482
■21-3-4 consoleモジュール 483
■21-3-5 utilモジュール 484
■21-3-6 processオブジェクト 485
■21-3-7 グローバルオブジェクト 487
■21-3-8 Node.jsプログラミングの概要 487
■21-3-9 イベントAPI 489
■21-3-10 バッファ 494
■21-3-11 ストリーム 498
■■■22章 実践 Node.jsプログラミング 502
■■22-1 HTTPサーバ処理 502
■22-1-1 HTTPサーバ処理の基本 502
■22-1-2 リクエスト処理 503
■22-1-3 レスポンス処理 505
■22-1-4 POSTリクエスト処理 506
■■22-2 HTTPクライアント処理 507
■■22-3 HTTPS処理 509
■22-3-1 opensslコマンドを使う自己証明書の発行方法 509
■22-3-2 HTTPSサーバ 509
■■22-4 Socket.IOとWebSocket 510
■■22-5 低レイヤのネットワークプログラミング 511
■22-5-1 低レイヤネットワーク処理 511
■22-5-2 ソケットとは 512
■22-5-3 ソケットプログラミングの基本構造 513
■22-5-4 ソケットプログラミングの具体例 515
■■22-6 ファイル処理 516
■22-6-1 本節のサンプルコード 516
■22-6-2 ファイルの非同期処理 517
■22-6-3 ファイルの同期処理 518
■22-6-4 ファイル操作系の関数 518
■22-6-5 ファイル読み込み 519
■22-6-6 ファイル書き込み 520
■22-6-7 ディレクトリ操作 521
■22-6-8 ファイルの変更監視 522
■22-6-9 ファイルパス 522
■■22-7 タイマー 523
▽▽コラム Node.jsのデバッグ 523
■■22-8 Express 524
■22-8-1 URLルーティング 524
■22-8-2 リクエスト処理 525
■22-8-3 レスポンス処理 526
■22-8-4 scaffold作成機能 526
■22-8-5 MVCアーキテクチャ 526
■22-8-6 テンプレート言語Jade 527
■22-8-7 MongoDB(データベース) 529
■22-8-8 Mongooseの実例 531
■22-8-9 ExpressとMongooseを使うWebアプリ 533
索引 536
おわりに 542
関連文書:
最近のコメント