首頁  >  文章  >  web前端  >  TaffyDB – 適用於瀏覽器的 JavaScript 資料庫

TaffyDB – 適用於瀏覽器的 JavaScript 資料庫

PHPz
PHPz轉載
2023-08-25 13:45:181104瀏覽

TaffyDB – 适用于浏览器的 JavaScript 数据库

TaffyDB 是一個輕量級且功能強大的記憶體資料庫,可用於瀏覽器和伺服器端應用程式。它是開源的並且可以免費使用。在本教程中,我們將透過幾個範例來展示如何使用 TaffyDB 儲存一些資料、對資料執行一些查詢以及對資料執行重要操作。

讓我們從一個簡單的範例開始

讓我們從一個非常基本的範例開始,在該範例中我們將創建一些數據,然後嘗試在瀏覽器上列印該數據。

我們的第一步是擁有TaffyDB。為此,我們有不同的選擇。最基本的方法是使用包含「taffydb.js」檔案的縮小版本的 URL。

“taffydb.js”的程式碼可以在此連結中找到。我建議您打開此鏈接,然後複製程式碼並將其貼到名為“taffy.js”的檔案中。否則,你可以 只需使用其 CDN。

現在處理了依賴關係,讓我們專注於「index.html」文件,我們將在其中編寫核心邏輯,當然,在 <script> 標記內。考慮下面顯示的 HTML 程式碼。 </script>

範例

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TaffyDB</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/taffydb/2.7.3/taffy-min.js"></script>
    <script>
        let countries = TAFFY([{
            name: "India",
            state: "Uttar Pradesh",
            capital: "New Delhi",
        }, {
            name: "USA",
            state: "California",
            capital: "Washington DC",
        }, {
            name: "Germany",
            state: "Berlin",
            capital: "Berlin",
        }]);
        let countriesNames = [];
        countries().each(function(r) {
            countriesNames.push(r.name);
        });
        document.write(countriesNames);
    </script>
</head>
<body>
</body>
</html>

如果您在瀏覽器中執行上述程式碼,您應該會看到以下輸出。

在上面的程式碼中,我們首先匯入了「taffy.js」文件,然後在 &ly;head> 標籤本身內建立了一個 <script> 標籤。在 <script> 標籤內,我們建立了一個 TAFFY 對象,在其中建立了一個物件數組,其中存在多個具有不同屬性的物件。 </script>

然後,我們迭代 countries 變數的值,對於每個變量,我們將「name」屬性的值放入名為「countriesName」的數組中。

如果您在瀏覽器中執行上述程式碼,您應該會看到以下輸出。

使用 TaffyDB 插入記錄

在上面的範例中,我們建立了一個物件陣列並將其傳遞給 TIFFY 方法。現在讓我們專注於向資料插入一個新對象,我們可以藉助 insert() 方法來完成此操作。在 insert() 方法中,我們可以傳遞相同的屬性或不同的屬性,這取決於我們的選擇。

考慮下面顯示的程式碼片段,我們可以使用它向 TaffyDB 中的國家變數。

countries.insert({
   name: "Brazil",
   state: "State of São Paulo",
   capital: "Brasília",
});

範例

index.html

更新後的index.html程式碼如下圖所示。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TaffyDB</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/taffydb/2.7.3/taffy-min.js"></script>
    <script>
        let countries = TAFFY([{
            name: "India",
            state: "Uttar Pradesh",
            capital: "New Delhi",
        }, {
            name: "USA",
            state: "California",
            capital: "Washington DC",
        }, {
            name: "Germany",
            state: "Berlin",
            capital: "Berlin",
        }]);
        countries.insert({
            name: "Brazil",
            state: "State of São Paulo",
            capital: "Brasília",
        });
        let countriesNames = [];
        countries().each(function(r) {
            countriesNames.push(r.name);
        });
        document.write(countriesNames);
    </script>
</head>
<body>
</body>
</html>

如果您在瀏覽器中執行上述程式碼,您應該會看到以下輸出 -

使用 TaffyDB 執行查詢

雖然我們在上面的範例中執行了查詢,但讓我們再次執行一個簡單的查詢,其中我們要儲存其首都和州在資料中具有相同值的國家/地區的名稱。

範例

index.html

考慮下面所示的 index.html 程式碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TaffyDB</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/taffydb/2.7.3/taffy-min.js"></script>
    <script>
        let countries = TAFFY([{
            name: "India",
            state: "Uttar Pradesh",
            capital: "New Delhi",
        }, {
            name: "USA",
            state: "California",
            capital: "Washington DC",
        }, {
            name: "Germany",
            state: "Berlin",
            capital: "Berlin",
        }]);
        countries.insert({
            name: "Brazil",
            state: "State of São Paulo",
            capital: "Brasília",
        });
        let res = [];
        countries().each(function(r) {
            if (r.state === r.capital) {
                res.push(r.name)
            }
        });
        document.write(res);
    </script>
</head>
<body>
</body>
</html>

在上面的 HTML 程式碼中,我們藉助 each() 方法迭代 countries 變數的所有值,然後比較「capital」並用它們「宣告」屬性值。然後,如果匹配,我們將值放入數組中,最後在控制台中列印該數組。

如果我們在瀏覽器中運行上面的 HTML 文件,我們將在 終端。

現在讓我們再執行一次查詢,這次,我們要列印字典順序中最小的國家/地區的名稱。從上面範例中的數據來看,它將是“巴西”。考慮下面顯示的 HTML 程式碼。

範例

index.html

考慮下面所示的 index.html 程式碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TaffyDB</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/taffydb/2.7.3/taffy-min.js"></script>
    <script>
        let countries = TAFFY([{
            name: "India",
            state: "Uttar Pradesh",
            capital: "New Delhi",
        }, {
            name: "USA",
            state: "California",
            capital: "Washington DC",
        }, {
            name: "Germany",
            state: "Berlin",
            capital: "Berlin",
        }]);
        countries.insert({
            name: "Brazil",
            state: "State of São Paulo",
            capital: "Brasília",
        });
        let res = countries().order("name").first().name;
        document.write(res);
    </script>
</head>
<body>
</body>
</html>

在上面的程式碼中,包含程式碼countries().order("name").first().name 的行是我們使用名為連結#,其中鏈接多個方法。首先,我們按 name 屬性對資料進行排序,然後從排序後的資料中選擇第一個元素,最後,我們從該元素中提取 name 屬性。

如果您在瀏覽器中執行上述 HTML 文件,您將在 終端。

使用 TaffyDB 更新資料

可以藉助 update() 方法來更新 TaffyDB 中的資料。在這個方法中,如果我們傳遞一個物件中不存在的屬性,那麼它將被追加;如果確實存在,則會更新。

假設您要在名為「India」的物件中新增一個字段,並新增一個名為 financialCapital 的新屬性:「Mumbai」。考慮下面顯示的 HTML 程式碼。

範例

index.html

考慮下面所示的 index.html 程式碼。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TaffyDB</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/taffydb/2.7.3/taffy-min.js"></script>
    <script>
        let countries = TAFFY([{
            name: "India",
            state: "Uttar Pradesh",
            capital: "New Delhi",
        }, {
            name: "USA",
            state: "California",
            capital: "Washington DC",
        }, {
            name: "Germany",
            state: "Berlin",
            capital: "Berlin",
        }]);
        countries.insert({
            name: "Brazil",
            state: "State of São Paulo",
            capital: "Brasília",
        });
        countries({
            name: "India"
        }).update({
            financialCapital: "Mumbai"
        })
        countries().each(function(r) {
            if (r.name == "India") {
                document.write(r.financialCapital + "<br>")
            } else {
                document.write(r.capital + "<br>")
            }
        })
    </script>
</head>
<body>

為了驗證我們添加的資料是否已添加到資料庫中,我迭代該對象,然後使用簡單的“if-else”條件列印值。

如果您在浏览器中运行上述 HTML 文件,您将在 终端。

使用“!”运算符

通过使用“!”运算符,您可以在 TaffyDB 中编写复杂的查询。考虑下面显示的 index.html 代码,其中我尝试使用“!”来打印除印度之外的所有具有该名称的国家/地区。运算符。

示例

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>TaffyDB</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/taffydb/2.7.3/taffy-min.js"></script>
    <script>
        let countries = TAFFY([{
            name: "India",
            state: "Uttar Pradesh",
            capital: "New Delhi",
        }, {
            name: "USA",
            state: "California",
            capital: "Washington DC",
        }, {
            name: "Germany",
            state: "Berlin",
            capital: "Berlin",
        }]);
        countries.insert({
            name: "Brazil",
            state: "State of São Paulo",
            capital: "Brasília",
        });
        countries({
            name: {
                "!is": "India"
            }
        }).each(function(r) {
            document.write(r.name + "<br>");
        })
    </script>
</head>
<body>
</body>
</html>

如果您在浏览器中运行上述 HTML 文件,您将在 终端。

结论

在本教程中,我们使用多个示例来演示如何在 TaffyDB 中执行 CRUD 操作。

以上是TaffyDB – 適用於瀏覽器的 JavaScript 資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除