人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScript + SQlite について。
あらかじめ作成しておいた、SQliteのデータを、JavaScriptから
読むのは可能でしょうか。
ちなみに、JavaScriptkから新規に、SQliteのデータを作成するのは
可能です。
開発環境は、iPhone/Safari です。

●質問者: Himadeus
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Cherenkov
●50ポイント

可能です.


Himadeusさんのコメント
Client-side database storage ですね。 これだと、クライアント側でデータ生成して保存する方法ですね。 あらかじめ、データベースファイルを作っておいて、読む方法を知りたいのです。 例えば、オフラインでも使える英和辞典のようなiPhoneアプリをJavaScriptで作成、などを考えています。

Cherenkovさんのコメント
javascriptだけでというのは分からないです。すいません。 読み込むところはバックエンドでやったほうが楽な気がします。

2 ● TransFreeBSD
●50ポイント ベストアンサー

いくつか見てみましたが、拡張機能でも任意のデータベースファイルを指定することはできなさそうです。
なので、正攻法でデータベースファイルを直接インストールすることは出来なさそうですが、
間接的な方法と、正攻法ではない方法の2つ方法を考えてみました。
ただ、普通に考えたら前者を取ると思います。上手く作ればオンラインとオフラインのハイブリッドとかデータ更新とかもやりやすくなりますし。

初回にJSONやXMLのデータをClient-side database storageに流し込む

データファイルは拡張機能として同梱しても良いでしょうし、ネットからダウンロードしても良いかもしれません。
それを、初回のインストール作業として、テーブルが無ければテーブル作成と共に読み込んで流し込む。
プログレスバーか何かで明示的に行う方法もあれば、バックグラウンドで少しずつ行う方法もあるかもしれません。
http://d.hatena.ne.jp/os0x/20100610/1276119135
http://developer.apple.com/library/safari/#documentation/Tools/Conceptual/SafariExtensionGuide/ExtensionSettings/ExtensionSettings.html

SQLiteのライブラリを組み込んだプラグインを使う

javascriptでは無理な部分があるので、ネイティブコードで動くプラグインにSQLiteのライブラリを組み込んで、直接ファイルをコピーし、管理データベースを更新して、Client-side database storageとして登録してしまう。
もちろんこれは非正規な方歩ですので、不具合が発生する可能性がある、というよりマトモに動くかどうかもやってみなければ分からない所です。通常のsafariについては幾つか情報がありますが、iPhone版でも同じなのか検証する所からとなるでしょう。
http://hajimemasita.blogspot.com/2008/03/safari-31client-side-database-storage.html
https://github.com/steventroughtonsmith/MobileSafariPlugin


Himadeusさんのコメント
JavaScript + SQLite では、あらかじめ用意しておいたデータを読めないのが理解できました。今回は、あまり複雑な事をする余裕がないので、別に、data.js を作って、グローバル変数の、連想配列を用意して、データを入れておこうと思います。 データの性質的にはRDB向きだったのですが、Key-Valueに合うように、変更します。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ