Хранение базы данных HTML5 (SQL lite) - несколько вопросов - программирование
Подтвердить что ты не робот

Хранение базы данных HTML5 (SQL lite) - несколько вопросов

Hy там,

Я не могу найти достаточно ресурсов для начинающих в Интернете о примерах использования хранилища баз данных HTML5 (CRUD)

Я открываю (создаю) свою БД следующим образом:

var db;

$(document).ready(function() 
{

    try
    {
      if (!window.openDatabase) {
            alert('Not Supported -> Please try with a WebKit Browser');
      } else {
          var shortName = 'mydatab';
          var version = '1.0';
          var displayName = 'User Settings Database';
          var maxSize = 3072*1024; //  = 3MB            in bytes 65536
          db = openDatabase(shortName, version, displayName, maxSize);      
          }
    } 
    catch(e) 
    {
      if (e == 2) {

          alert("Invalid database version.");
      } else {
          alert("Unknown error "+e+".");
      }return;
    }
});

ВОПРОС 1: Сколько баз данных можно создать и использовать в одном домене? ВОПРОС 2. Как удалить (удалить) базу данных. → Я еще не понял этого.

Чтобы создать SQL-запросы, вы используете транзакцию:

function nullDataHandler(transaction, results) { }
function createTables(db)
{
  db.transaction(function (transaction)
  {
    //first query causes the transaction to (intentionally) fail if the table exists.
    transaction.executeSql('CREATE TABLE people(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL DEFAULT "John Doe", shirt TEXT NOT NULL DEFAULT "Purple");', [], nullDataHandler, errorHandler);
  });
}

ВОПРОС 3: Как так вышла вышеуказанная трансацитон, если существует таблица? Применяется ли nullDataHandler для этого? Где в Интернете есть документация, объясняющая API-интерфейс executeSql? Аргументы?

ТНХ

4b9b3361

Ответ 1

Спецификация, которую вы ищете, База данных веб-SQL. Быстрое чтение предполагает:

  • Нет ограничений, хотя, как только ваши базы данных будут превышать определенный размер (по умолчанию это 5MB), браузер предложит пользователю разрешить больше места.
  • В текущей спецификации нет способа удалить базы данных.
  • Функция executeSql() принимает необязательный аргумент обратного вызова ошибки.

HTML5 Doctor также имеет хорошее представление.

Тем не менее, я бы рекомендовал посмотреть Indexed DB. Веб-SQL по существу был оставлен, поскольку нет стандарта для SQL/SQLite. Даже Microsoft одобрила индексированную БД. См. Консенсус появляется для основного стандарта веб-приложений.

Ответ 2

CREATE TABLE IF NOT EXISTS table_name

создаст таблицу table_name, только если if не существует.

Ответ 3

Я нашел следующие учебники WebSQL полезными для основных операций CRUD, поскольку они содержали примеры и объясняли, что делает код:

И следующие ссылки для SequelSphere (HTML5 JavaScript SQL Relational Database Альтернатива WebSQL, которая работает во всех браузерах, сохраняя данные в LocalStorage и IndexedDB ):

Ответ 4

Используя PersistenceJS, существует API persistence.reset, который очистит базу данных. сайт PersistenceJS

Для разработки/тестирования вы можете просматривать контент и удалять webSQL, IndexedDB, файлы cookie и т.д., ища свое доменное имя по этому URL-адресу в Chrome:

chrome://settings/cookies

Там вы можете удалить все хранилище для домена или только определенных локальных объектов хранения. Да, URL-адрес подразумевает только "куки", но интерфейс по этому URL-адресу включает все типы автономного хранилища.

Было бы здорово, если бы интерфейс инструментов разработчика Chrome имел возможность щелкнуть правой кнопкой мыши и удалить объект хранения данных на вкладке "Ресурсы" вместе с проверкой содержимого. Но на данный момент все, что я знаю, это URL настроек/файлов cookie.

Ответ 5

Он поддерживается на сафари iOS, хром и некоторая последняя версия оперы.... он еще не принят IE и Firefox, что это...... что еще можно спросить, чем локальный db в браузере, который имеет реляционные db... так что вы можете легко запросить его и обработать сложные данные... что очень жестко в системах с ключевыми уровнями.

Я помню, что чтение его даже поддерживает до одного gb.i не уверен....

Примечание:

1) Я хотел бы упомянуть один момент: есть IDE, называемая Dashcode, которая позволяет создавать веб-приложения, которые выглядят как iOS native.even там также используется веб-SQL.

2) фактически веб-SQL - это реализация SQLite в браузерах.

3) SQLite наиболее предпочтителен как для iOS, так и для android как db для собственного кода.

Недостатки SQLite:

Отсутствие поддержки concurrency, но это не проблема в браузере, поскольку он будет использоваться одним пользователем за раз. Это также относится и к мобильному.

Выводы:

Web Sql заброшен w3, что печально, поэтому мы должны изучить другие варианты.