0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎么用js保存數(shù)據(jù)

科技綠洲 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-11-27 16:10 ? 次閱讀

JS保存數(shù)據(jù)是Web開發(fā)中非常重要的一個功能,它能夠?qū)⒂脩舻妮斎牖蛘咂渌麛?shù)據(jù)存儲在瀏覽器中,隨后方便地讀取和使用。在本文中,我們將討論不同的數(shù)據(jù)保存方式以及如何使用JS在客戶端中實現(xiàn)數(shù)據(jù)的保存。

首先,讓我們介紹一些常見的數(shù)據(jù)保存方式:

  1. Cookie:Cookie是一種小型的鍵值對數(shù)據(jù),它可以被存儲在用戶的瀏覽器中。Cookie的大小通常有限制,它可以通過設(shè)置過期時間來控制存儲的時間范圍。要使用JS保存數(shù)據(jù)到Cookie中,可以使用document.cookie屬性來設(shè)置和獲取數(shù)據(jù)。
  2. Web Storage:Web Storage提供了兩種API,即localStorage和sessionStorage,它們可以存儲更大量的數(shù)據(jù),并且不會隨著頁面刷新而丟失。localStorage可以長時間保存數(shù)據(jù),而sessionStorage只在會話期間有效。要使用JS保存數(shù)據(jù)到Web Storage中,可以使用localStorage.setItem()方法來設(shè)置數(shù)據(jù),使用localStorage.getItem()方法來獲取數(shù)據(jù)。
  3. IndexedDB:IndexedDB是一個功能強(qiáng)大的客戶端數(shù)據(jù)庫,它可以存儲大量結(jié)構(gòu)化數(shù)據(jù),并支持復(fù)雜的查詢和事務(wù)操作。IndexedDB使用異步API,要使用JS保存數(shù)據(jù)到IndexedDB中,首先需要創(chuàng)建一個數(shù)據(jù)庫,然后創(chuàng)建一個對象存儲空間,最后使用事務(wù)將數(shù)據(jù)保存到對象存儲空間中。
  4. Web SQL Database:Web SQL Database是一個被廢棄的技術(shù),不再被推薦使用。但是它仍然能夠在一些舊的瀏覽器中使用。Web SQL Database使用SQL語句來操作數(shù)據(jù)庫,通過創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、插入數(shù)據(jù)等方式來保存數(shù)據(jù)。

現(xiàn)在,讓我們來看一些例子來說明如何使用JS保存數(shù)據(jù):

  1. 使用Cookie保存數(shù)據(jù):
document.cookie = "username=John Doe; expires=Sun, 31 Dec 2023 12:00:00 UTC; path=/";

上述代碼將一個名為"username"的Cookie保存到瀏覽器中。

  1. 使用localStorage保存數(shù)據(jù):
localStorage.setItem("username", "John Doe");

上述代碼將一個名為"username"的數(shù)據(jù)保存到localStorage中。

  1. 使用IndexedDB保存數(shù)據(jù):
let request = indexedDB.open("myDatabase", 1);

request.onupgradeneeded = function(event) {
let db = event.target.result;
let objectStore = db.createObjectStore("customers", { keyPath: "id" });
};

request.onsuccess = function(event) {
let db = event.target.result;
let transaction = db.transaction(["customers"], "readwrite");
let objectStore = transaction.objectStore("customers");
let request = objectStore.add({ id: 1, username: "John Doe" });
};

上述代碼創(chuàng)建了一個名為"myDatabase"的數(shù)據(jù)庫,并在其中創(chuàng)建了一個名為"customers"的對象存儲空間。隨后,通過事務(wù)將數(shù)據(jù)保存到對象存儲空間中。

總結(jié)起來,JS保存數(shù)據(jù)可以通過Cookie、Web Storage、IndexedDB和Web SQL Database等方式實現(xiàn)。這些不同的數(shù)據(jù)保存方式有著不同的特點和適用場景,開發(fā)者可以根據(jù)具體需求選擇合適的方式。通過使用這些方式,開發(fā)者可以方便地在客戶端保存和讀取數(shù)據(jù),提高用戶體驗并實現(xiàn)更豐富的功能。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7030

    瀏覽量

    89034
  • 存儲
    +關(guān)注

    關(guān)注

    13

    文章

    4314

    瀏覽量

    85846
  • JS
    JS
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    18106
  • 瀏覽器
    +關(guān)注

    關(guān)注

    1

    文章

    1025

    瀏覽量

    35358
收藏 人收藏

    評論

    相關(guān)推薦

    串口發(fā)送數(shù)據(jù)保存TXT出現(xiàn)黑塊

    `我串口發(fā)送數(shù)據(jù)到自己vb寫的上位機(jī)軟件,并保存成txt文檔,發(fā)現(xiàn)txt文檔里面會出現(xiàn)黑塊。但是串口調(diào)試助手
    發(fā)表于 05-04 16:16

    保存數(shù)據(jù)

    labvIEW如何在任意路徑下保存excel?就是在選擇保存數(shù)據(jù)時,彈出個窗口,讓用戶選擇保存路徑和文件名
    發(fā)表于 10-14 15:49

    數(shù)據(jù)采集,要保存數(shù)據(jù),并且對保存數(shù)據(jù)有要求,請問哪個函數(shù)比較好?

    我要實現(xiàn)一分鐘采集一次,一次采集20480個數(shù)據(jù)長度并且保存成TXT格式。請問那種數(shù)據(jù)保存函數(shù)比較好?
    發(fā)表于 04-13 14:57

    JS應(yīng)用開發(fā)框架組件

    JS應(yīng)用開發(fā)框架包括JS數(shù)據(jù)綁定框架(JS Data binding)、JS運(yùn)行時(JS ru
    發(fā)表于 04-23 18:05

    在OpenHarmony上使用js和c語言開發(fā),如何將日志保存在文件中?

    在運(yùn)行過程中,各種普通日志在打印文件中保存,出現(xiàn)應(yīng)用問題時,通過獲取到日志文件時的應(yīng)用進(jìn)行分析。在node.js中,可以將日志打印的輸出流控制器為文件自動運(yùn)行。我想問一下,在 OpenHarmony 上,使用 js 和 c 語言
    發(fā)表于 03-30 09:40

    在OpenHarmony上使用js和c語言開發(fā)如何將日志保存在文件中?

    在應(yīng)用運(yùn)行過程中,一般會將日志打印在文件中保存,當(dāng)應(yīng)用出現(xiàn)問題時,通過各種途徑獲取到日志文件對其進(jìn)行分析。在node.js中,可以將日志打印的輸出流重定向為文件即可。我想問一下,在OpenHarmony上,使用js和c語言開發(fā),
    發(fā)表于 04-25 10:11

    STM32/FLASH保存數(shù)據(jù)

    STM32/FLASH保存數(shù)據(jù),適合初學(xué)者
    發(fā)表于 09-27 14:46 ?22次下載

    labview串口數(shù)據(jù)保存_labview如何對串口數(shù)據(jù)緩存

    主程序表單中后,測試設(shè)置按鈕一個Boolean類型按鈕“保存數(shù)據(jù)”,它就是用來設(shè)置數(shù)據(jù)是否保存的設(shè)置按鈕。
    發(fā)表于 01-15 14:33 ?3.2w次閱讀
    labview串口<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>保存</b>_labview如何對串口<b class='flag-5'>數(shù)據(jù)</b>緩存

    數(shù)據(jù)保存工具

    數(shù)據(jù)保存VI
    發(fā)表于 10-11 17:51 ?17次下載

    基于JS擴(kuò)展的類Web開發(fā)范式

    通訊錄 demo 主要分為聯(lián)系人界面、設(shè)置緊急聯(lián)系人、服務(wù)卡片 3 個模塊,分為 Java 和 JS 兩個版本,本篇主要講解用盡可能的JS 去實現(xiàn),實在無法實現(xiàn)的地方采用 JS
    的頭像 發(fā)表于 01-04 14:52 ?2625次閱讀

    STM32的flash保存數(shù)據(jù)的優(yōu)化方法

    最開始STM32的flash保存數(shù)據(jù)的方法都是原子的例程,STM32F1的話,原子的方法大概是創(chuàng)建一個1K或者2K的緩存......
    發(fā)表于 02-08 16:19 ?15次下載
    <b class='flag-5'>用</b>STM32的flash<b class='flag-5'>保存</b><b class='flag-5'>數(shù)據(jù)</b>的優(yōu)化方法

    Python怎么玩轉(zhuǎn)JS腳本

    本項目旨在讓大家了解如何用Python來執(zhí)行JS腳本,其主要目的是在進(jìn)行數(shù)據(jù) 分析時,需要利用爬蟲獲取數(shù)據(jù),有時會遇到JS混淆加密反爬取難點,此時我們需 要獲取網(wǎng)頁
    的頭像 發(fā)表于 02-23 16:26 ?1125次閱讀
    Python怎么玩轉(zhuǎn)<b class='flag-5'>JS</b>腳本

    Labview將二維數(shù)組保存至Excel

    #LabviewLabview將二維數(shù)組保存至Excel
    發(fā)表于 09-21 14:57 ?32次下載

    js將文件流轉(zhuǎn)化文件保存

    在JavaScript中,可以使用Blob和FileReader對象將文件流轉(zhuǎn)換為文件并保存。 首先,我們需要了解一下Blob對象。Blob表示不可變、原始數(shù)據(jù)的類文件對象。我們可以簡單理解為
    的頭像 發(fā)表于 11-27 16:07 ?3642次閱讀

    示波器如何保存波形數(shù)據(jù)?

    大多數(shù)現(xiàn)代示波器都具備內(nèi)置的存儲功能,允許用戶保存波形數(shù)據(jù)。這些數(shù)據(jù)可以保存在示波器的內(nèi)部存儲器中,或者直接導(dǎo)出到外部存儲設(shè)備。
    的頭像 發(fā)表于 05-31 17:31 ?2606次閱讀