開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
初めてのコンピュータサイエンス(Jennifer Campbell、Paul Gries、Jason Montojo、Greg Wilson(著)長尾 高弘(翻訳))の15章(データベース)、15.11(練習問題)、1-c, d.をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
15.11(練習問題)、1-c, d.
コード
sample.dart
import 'dart:html'; import 'dart:indexed_db' as idb; import 'dart:async' as async; void main() { run.onClick.listen((MouseEvent event){ pre.text = window.navigator.userAgent + '\n'; if(idb.IdbFactory.supported){ window.indexedDB.open('census.db', version: 2, onUpgradeNeeded: _initializeDatabase) .then(_loadFromDB); } else { pre.text += 'このブラウザではindexedDBは使用出来ません'; } }); clear.onClick.listen((MouseEvent event) => pre.text = ''); } ButtonElement run= querySelector('#run_dart'); ButtonElement clear = querySelector('#clear'); PreElement pre = querySelector('#pre0'); async.Future _loadFromDB(idb.Database db){ var transaction = db.transaction('Density', 'readwrite'); var object_store = transaction.objectStore('Density'); object_store.clear(); data.forEach((var l) => object_store.add({'State':l[0], 'Population':l[1], 'Area': l[2]})); pre.text += 'object store: ${object_store.name}\n'; var cursors = object_store.openCursor(autoAdvance: true).asBroadcastStream(); cursors.listen((var cursor) { pre.text += '${cursor.value}\n'; }); } void _initializeDatabase(idb.VersionChangeEvent e) { idb.Database db = (e.target as idb.Request).result; var object_store = db.createObjectStore('Density', keyPath:'State', autoIncrement: false); } var data = [["ニューファンドランド・ラブラドール州", 512930, 370501.69], ["プリンスエドワードアイランド州", 135294, 5684.39], ["ノバスコシア州", 908007, 52917.43], ["ニューブランズウィック州", 729498, 71355.67], ["ケベック州", 7237479, 1357743.08], ["オンタリオ州", 11410046, 907655.59], ["マニトバ州", 1119583, 551937.87], ["サスカチュワン州", 978933, 586561.35], ["アルバータ州", 2974807, 639987.12], ["ブリティッシュコロンビア州", 3907738, 926492.48], ["ユーコン準州", 28674, 474706.97], ["ノースウェスト準州", 37360, 1141108.37], ["ヌナブト準州", 26745, 1925460.18]];
0 コメント:
コメントを投稿