Sqlite в хром

55

Можно ли сделать расширение chrome, которое взаимодействует с базой данных sqlite так же, как расширение Firefox? Не могли бы вы дать мне совет или ссылку, где больше информации о разработке расширения chrome, взаимодействующего с sqlite?

Благодарю вас

Теги:
google-chrome-extension

4 ответа

25

Вы можете использовать Web SQL API, который является обычной базой данных SQLite в вашем браузере, и вы можете открывать/изменять его, как и любые другие базы данных SQLite, для пример с Lita.

Chrome автоматически находит базы данных в соответствии с именами доменов или идентификатором расширения. Несколько месяцев назад я опубликовал в своем блоге короткую статью о о том, как удалить базу данных Chrome, потому что, когда вы тестируете некоторые функции, она весьма полезна.

  • 0
    Я хотел бы использовать одну и ту же базу данных sqlite от Firefox и Chrome. Возможно ли это с помощью API Web SQL?
  • 1
    Определенно не с Web SQL API. Может быть, с помощью NPAPI ( code.google.com/chrome/extensions/npapi.html ), но это будет очень сложно. Почему вам нужно использовать одну и ту же базу данных? Возможно, вы могли бы использовать какую-нибудь внешнюю базу данных (например, Google App Engine), и ваши расширения (для Chrome и Firefox) могли бы взаимодействовать с ней ... просто идея :).
Показать ещё 1 комментарий
17

Возможно, вы сможете использовать sql.js.

sql.js - это порт SQLite для JavaScript, путем компиляции кода SQLite C с помощью Emscripten. нет связок C или компиляции node -gyp здесь.

<script src='js/sql.js'></script>
<script>
    //Create the database
    var db = new SQL.Database();
    // Run a query without reading the results
    db.run("CREATE TABLE test (col1, col2);");
    // Insert two rows: (1,111) and (2,222)
    db.run("INSERT INTO test VALUES (?,?), (?,?)", [1,111,2,222]);

    // Prepare a statement
    var stmt = db.prepare("SELECT * FROM test WHERE col1 BETWEEN $start AND $end");
    stmt.getAsObject({$start:1, $end:1}); // {col1:1, col2:111}

    // Bind new values
    stmt.bind({$start:1, $end:2});
    while(stmt.step()) { //
        var row = stmt.getAsObject();
        // [...] do something with the row of result
    }
</script>

sql.js - это один файл JavaScript, размер которого в настоящий момент составляет около 1.5MiB. Хотя это может быть проблемой на веб-странице, размер, вероятно, допустим для расширения.

  • 2
    Следует отметить, что это пока единственное предложение, которое потенциально может подключаться к существующим БД.
12

Chrome поддерживает API WebDatabase (который работает на базе sqlite), но выглядит так, как W3C остановил .

  • 0
    Могу ли я подключиться из chrome ко мне в базу данных sqlite и сделать несколько операторов выбора, вставки, обновления, удаления?
  • 0
    @xralf Если вы имеете в виду внешнюю установку sqlite, то нет. Chrome поставляется со встроенным sqlite, который вы можете использовать (создать базу данных, сделать выбор и т. Д.)
3

Я не совсем уверен, если вы имеете в виду "могу ли я использовать sqlite (websql) в chrome" или "могу ли я использовать sqlite (websql) в firefox", поэтому я отвечу на оба:

Обратите внимание, что WebSQL не является каналом полного доступа в базе данных .sqlite. Это WebSQL. Вы не сможете запускать некоторые конкретные запросы, например VACUUM

Это потрясающе для создания/чтения/обновления/удаления. Я сделал небольшую библиотеку, которая помогает со всеми раздражающими nitty gritty, такими как создание таблиц и запросов, и предоставляет небольшой шаблон ORM/ActiveRecord с отношениями и всеми, а также огромный стек примеров, которые должны начать вас без задержек, вы можете проверить это здесь

Кроме того, имейте в виду, что если вы хотите построить расширение FireFox: Их формат расширения вот-вот изменится. Убедитесь, что вы хотите потратьте время дважды.

В то время как спецификация WebSQL устарела в течение многих лет, даже сейчас в 2017 году все еще не похоже, что она будет удалена из Chrome в обозримое время. Они отслеживают статистику использования, и в реальном мире все еще существует большое количество хромовых расширений и веб-сайтов, реализующих спецификацию.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню