問題タブ [web-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3981 参照

html - Web SQL データベース フォルダ

Windows XP で Chrome を使用していますが、どのフォルダに Web SQL データベース ファイルが含まれているのだろうか?

Chrome Developer ツールを使用してデータベースを調べましたが、これらのデータベース ファイルを保存する場所はどこにあるのかまだ知りませんでした。

乾杯。

0 投票する
1 に答える
3872 参照

javascript - Web データベースを使用した Phonegap エラー: 「式 mydb.transaction の結果は関数ではありません」

初めて iOS アプリに phonegap を使用して html5 の Web データベースを使用しようとしています。しかし、「式 mybd.transaction の結果は関数ではありません」というこのエラーで立ち往生しています。

アラートで確認するとinitDBは実行されているのですが、createTables関数になると上記のエラーが出てどうしようもありません。

私はこの実装を使用しました - > http://wiki.phonegap.com/w/page/16494756/Adding%20SQL%20Database%20support%20to%20your%20iPhone%20App

0 投票する
1 に答える
1720 参照

javascript - phonegapアプリでWebSQLデータベースからデータを取得できません

一部のデータを保存する必要があるiOSのphonegapアプリに取り組んでいます。phonegap docsに記載されているストレージAPIを使用していますが、データが挿入されていると思います。しかし、SELECTステートメントを使用してデータを取得しようとすると、アラートボックスに出力が表示されません。

「loading2」アラートが表示されていますが、その後は出力がありません。

私のコードは次のとおりです(phonegap wikiから取得):

0 投票する
2 に答える
11851 参照

jquery - HTML5 WebSQL:dbトランザクションがいつ終了するかを知る方法は?

次のコードは、jsonレコードセットを取得し、クライアントのWebSQLストレージ上の3つの異なるテーブルにデータを挿入します。

databaseSync()関数の終わりをインターセプトするにはどうすればよいですか?私がやりたいのは、同期が完了したときにユーザーに通知するために、アラートまたはより適切なajaxスピナーgifを表示することです。

助けてくれてありがとう、チャオ!

0 投票する
2 に答える
970 参照

android - PhonegapWebSQLデータベースを操作する方法

PhoneGapを使用してアプリを開発していますが、問題が見つかりました。データベースファイルがわからないので見つからないので、操作したり、必要なレコードやテーブルが含まれているかどうかを確認したりできます。

それができるアプリはありますか?SafariとChromeにはそれを備えたメニューがあることがわかりましたが、私の電話ではそれを備えたものが見つかりません。

0 投票する
2 に答える
7855 参照

ios - HTML5iOSアプリケーションにデータを安全に保存する-localStorage/WebSQL / IndexedDBは適切ですか?

iOSアプリストアでリリースしたいHTML5アプリケーションを書いています。PhoneGapを使用するか、UIWebViewコントロールにラップされます。

アプリケーションのデータを保存するという点で、どのようなオプションがあるのか​​少し混乱しています。

このタイプのアプリケーションにアプリケーションデータを格納するのに適したlocalStorage、WebSQL、またはIndexedDBテクノロジを使用していますか?JSONとXMLデータを保存します。

ユーザーが誤ってこのデータを削除すると、作業内容が失われることに注意してください。これは明らかに私が望んでいないことです。

このリスクを軽減する唯一の実際の方法は、データを「クラウド」または他のオンラインシステムに同期することであると理解しています。これは将来のリリースで実行できますが、現時点では実行できません。それが物事を行うための合理的な安定した方法である場合、最初はデータをローカルに保存したいだけです。

私が理解していることから、Cookieをクリアすると、ブラウザはすべてのlocalStorageデータもクリアします。ユーザーが偶然にそれをしているのを見ることができるので、それはそれを除外します。

WebSQLはかなり見栄えがします-ユーザーがiOSで誤ってWebSQLを削除することはできません。実際には、ブラウザの設定に移動して、データベースを手動で削除する必要があります。

しかし、WebSQLの欠点は、私が読んだことから、将来的にサポートされなくなる可能性があることです。

IndexedDBでは、そのデータがいつクリアされるかがわかりません。Cookieが削除されたときにも削除されますか、それともSafari設定の「データベース」オプションがこれを制御しますか?

IndexedDBは、将来的にWebSQLよりも優れたサポートを提供するため、より優れたソリューションですか?

私が気付いていない、より適切な他の解決策はありますか?

0 投票する
7 に答える
14649 参照

javascript - 2011 年に iOS/Android 向けの HTML5 オフライン ストレージ ソリューションを開発中

問題:

電話またはタブレット タイプのデバイス (iOS/Android など) で 250,000 行以上のデータをオフラインで保存およびクエリするための、デバイスに依存しない (HTML5 などの) ソリューションが必要です。携帯電話のデータ接続がない遠隔地で働いている人がいて、このデータに対してクエリを実行し、オフラインで編集する必要があるという考えです。部分的には地理位置情報に基づいているため、(GPS を使用して) アセットが存在するエリアにアセットがある場合、それらのアセットが表示され、編集できるようになります。オフィスに戻ると、データをオフィス サーバーに同期できます。

Web 標準の観点からこれに取り組んでいる理由は、基本的に、Objective C と Java で 2 回記述するのではなく、HTML5 で 1 回記述してから複数のプラットフォームで動作することで、お金と時間を節約するためです。また、プラットフォームにとらわれないものを書いた場合、あなたは閉じ込められず、誰もが新しいものに移動したときに船と一緒に降りることはありません. Windows Mobile 5 用に作成された同様のアプリがありましたが、そのプラットフォームが廃止されたため、今では役に立ちません。

デバイス上のオフライン データベースは次のようになっている必要があります。

  • 高速 (2 秒未満の応答)
  • 潜在的に結合を実行し、データベースにクエリを実行できる他のテーブルとの関係を持つ
  • GPS 読み取り値に基づく x & y 座標など、特定の範囲または基準内のデータを選択します。

オプション:

HTML5 ローカル ストレージ:

5,000 個未満のキー/値の少量のデータには問題ありません。JSON に変換すれば、配列/オブジェクトを格納することもできます。

短所:

  • ハイエンド マシンでも 10,000 行を超えると、ブラウザの動作が遅くなります。
  • ストレージ全体を反復処理して手動で検索する必要があるため、データに対して複雑なクエリを実行して必要なデータを引き出すことはできません。
  • 保存できる容量の制限

ウェブ SQL データベース:

  • 要件を満たしています。
  • 250,000 行のクエリを高速に実行 (1 ~ 2 秒)
  • 複雑なクエリ、結合などを作成できます
  • Safari、Android、Opera でサポートされているため、iOS および Android デバイスで動作します

短所:

  • 2010 年 11 月に非推奨
  • クロス ディレクトリ攻撃によるセキュリティ上の欠陥。共有ホスティングを使用しないため、実際には問題ありません

索引付けされたDB:

インデックスを除いて、ローカル ストレージと同様のキー/値オブジェクト ストア。

短所:

  • 200,000 行でクエリを実行するのが遅い (15 ~ 18 秒)
  • 複雑なクエリを実行できない
  • 他のテーブルとの結合はできません
  • iPad/Android などの主な携帯電話やタブレット デバイスではサポートされていません
  • 規格未完成

これにより、非推奨の Web SQL メソッドを実装する唯一のオプションが残ります。これは、あと 1 年ほどしか機能しない可能性があります。現在、IndexedDB とローカル ストレージは使用できません。

Mozilla と Microsoft がどのようにして Web SQL Database 標準を非推奨にしたのか、そしてなぜ W3C がそれを実現させたのか、私にはわかりません。おそらくそれらの間で、デスクトップ ブラウザ市場の 77% を占めています。高度なモバイル デバイスでは、 Safari、Opera、Android が市場シェアの 90% 以上を占めているため、 Mozilla と Microsoft の影響力はほとんどありません。Mozilla と Microsoft が、オフライン ストレージが使用される可能性が最も高いモバイル市場でどの標準を使用する必要があるかをどのように決定できるかは、意味がありません。

代わりに IndexedDB を使用する理由についてのMozilla からのコメントは、主に「開発者の美学」に関するものであり、JavaScript で SQL を実行するという考えが好きではありません。私はそれを買っていません。

  1. 現在提案されている標準は劣っており、非常に基本的な NoSQL 実装であり、遅く、データベースに必要な高度な機能さえサポートしていません。データベースを確立してデータを取得するための定型コードはたくさんありますが、その上に、より高度な機能を提供する優れた抽象化ライブラリを作成すると主張しています。2011 年 10 月現在、それらはどこにも見られません。

  2. 彼らは、実際に機能し、メインのモバイル/タブレット ブラウザに実装されている既存の Web SQL 標準を非推奨にしました。彼らの「新しい」「より良い」標準は、主要なモバイルブラウザでは利用できません.

  3. IndexedDB 仕様が標準化され、より多くの機能が追加され、主要なモバイル/タブレット ブラウザーに実装され、物事を簡単にするための優れたライブラリが提供される 3 ~ 5 年間、私たち開発者は何を使用することになっているのでしょうか?

W3C は、Web SQL データベース標準を並行して実行し続け、問題を修正するだけです。すでに主要なモバイルプラットフォームをサポートしており、かなりうまく機能します. 最も多くのデスクトップ ブラウザ シェアを持つ Mozilla と Microsoft がこの標準を廃棄することができたという事実はかなり疑わしく、彼らが追いついて提供できるようになるまで、モバイル Web プラットフォームでの進歩を妨げようとする試みと見なされる可能性があります。 iOS/Safari および Android に対する競合ソリューション。

結論として、電話/タブレットデバイスのiOS/Androidで機能する私の問題の解決策はありますか? おそらく、バックグラウンドでクエリ機能を使用して複数のデータベース実装を使用でき、どのデータベースを優先するかを選択できる、優れたラッパー API です。Lawnchairのようなものを見たことがありますが、デフォルトではローカル ストレージしか使用できず、他のストレージにはフォールバックされると確信しています。遅いオプションよりも Web SQL (デフォルト) を使用した方がよいと思います。

解決策の助けに感謝します、ありがとう!

0 投票する
1 に答える
1008 参照

javascript - SQLステートメントの日付を比較する

WebSQLを使用してアラートツールを作成しています。

特定の日に発生するすべてのイベントを選択したい。イベントを挿入するとき、この形式「2011-10-14」の日付オブジェクトとして日付を挿入します。今日発生するすべてのイベントを選択するには、selectステートメントに何を書き込む必要がありますか?

私はこのように作ります

私の質問は次のとおりです。

しかし、「10月近く:構文エラー」というエラーメッセージが表示されます。

SQLで日付を比較するにはどうすればよいですか?

0 投票する
8 に答える
45371 参照

cordova - Android と iOS のローカル ストレージはどのくらい永続的ですか?

アプリが携帯電話にローカルにデータを保存する場合、そのストレージはどのくらい永続的ですか? 正確な状況を詳しく説明します。

jQueryMobile と Phonegap を使用してアプリを構築しています。これは基本的にはブラウザ アプリですが、Phonegap を使用すると、パッケージ化してアプリ ストアで販売できるなど、さまざまな利点があります。

Phonegap は 2 つのストレージ方法を提供します。どちらの機能も、iOS、Android、Blackberry、およびその他の OS のネイティブ機能を調和させます。localStorage (プリミティブなキーと値のペア) と Web SQL データベースです。localStorage と Web SQL はどちらも、ブラウザーに属するストレージの形式です。そうは言っても、データがいつまで保存されるか、どのような状況で削除されるか、どのような状況で利用できないかなどはわかりません.

たとえば、アプリが localStorage または Web SQL を使用してデータを保存し、ユーザーが Android で別の標準ブラウザーに切り替えた場合、アプリは新しいブラウザーで開かれますか? これは、保存されたデータが利用できないことを意味しますか?

ユーザーがアプリを 1 年間使用しない場合 (私の場合は現実的なシナリオであり、必ずしも悪いシナリオではありません)、データは Cookie のように期限切れになるのでしょうか。他のアプリからのデータ?

または、次の場合など、データはさらに早く破棄されますか?

または、localStorage と Web SQL は、(Android で) [設定] > [アプリ] に移動し、アプリに関連付けられているユーザー データを積極的に削除するときにのみ削除する種類のストレージですか?

洞察をありがとう。古い W​​WW には有益な情報は何もありません。

アプリの更新の場合はどうなりますか。ローカル ストレージと Web ストレージは削除されますか、それとも残りますか?

0 投票する
2 に答える
464 参照

javascript - iOS と PhoneGap のトラブル

PhoneGap を使用して、html、css、javascript ファイルを iOS に適応させようとし始めたところです (NimbleKit も試しましたが、結果は同じです)。Blackberry Playbook 用に最初に作成した Web アプリがあります。このアプリは Playbook と Chrome および Safari で正常に動作します。ただし、PhoneGap を使用して XCode で実行しようとすると、アプリはシミュレーターに表示されますが、データベースのコーディングが適切に実行されないようです (少なくとも、それが問題だと思います)。ビルド エラーは発生しません。

ドキュメントから、NimbleKit は独自の内部 SQLite をサポートしているようですが、PhoneGap は WebDB をサポートしているようです。これは私のデータベースが書かれているものです。

最後に、シミュレーターは私が持っているいくつかのグローバル変数を実行していないようです (私は知っていますが、グローバル変数を使用していません)。

正しい方向への考えやポイントは非常に役に立ちます。iOS sim でアプリをデバッグするのに役立つドキュメントがある場合でも。

前もって感謝します。