Есть ли способ автоматического сохранения содержимого, удовлетворяющего требованиям, в базу данных sqlite с помощью addEventListener? - PullRequest
0 голосов
/ 05 мая 2019

Я создаю аккуратный текстовый редактор в Electron и хочу автоматически сохранить все, что было набрано в <div id="editor" contenteditable="true">. Как это можно сделать?

На данный момент средство сохранения работает одним нажатием кнопки, что достаточно просто:

document.getElementById("saveChanges").onclick = function() { }

Я попытался изменить вышеприведенную строку следующим образом:

document.addEventListener('keydown', function(e) {
    for (var i = 0; i < editor.length; i++)

Это не работает, но я также понятия не имею, почему нет. Это не дает никаких ошибок, но и ничего не делает.

Что я делаю не так?

// This is the code that doesn't work

document.addEventListener('keydown', function(e) {
    for (var i = 0; i < editor.length; i++)
    {
        let content = document.getElementById("editor").innerHTML;

        console.log(content);

        const sqlite3 = require('sqlite3').verbose();

        let db = new sqlite3.Database('./appdata/resources/protodatabase.evv');

        let sql = 'UPDATE Subchapters SET subtext=? WHERE subid=1';

        db.run(sql, content, function (err) {
            console.log();
            if (err) {
            return console.error(err.message);
        }});

    db.close();
    };
    });

1 Ответ

0 голосов
/ 05 мая 2019

Я на самом деле понял это сам:

var editable = document.getElementById('editor');
editable.addEventListener('keydown', function(e) {
    // execute code when spacebar or enter is pressed
    var toets = e.keyCode;
    if (toets == 32 || toets == 13)

Это работает довольно хорошо. Но код очень, очень интенсивно использует диск. Нужно выяснить, как поместить базу данных в память, сделать там все изменения и периодически сохранять ее в базе данных на диске ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...