js 数据存储和DOM编程

JS 数据存储和 DOM 编程攻略

概述

JavaScript 是一种具有灵活性和交互性的编程语言,它在 Web 开发中扮演着重要的角色。其中,数据存储是支撑 Web 应用程序的关键之一,DOM 编程则是实现动态 Web 应用程序的重要手段之一。

本攻略将向您介绍如何使用 JS 实现数据存储和 DOM 编程的基本知识。本攻略分为以下两个部分:

  1. JS 数据存储
  2. DOM 编程

JS 数据存储

在 Web 应用程序中,我们需要将数据存储到客户端(浏览器端)或服务器端。JS 提供了许多数据存储的解决方案,包括 cookie、localStorage、sessionStorage 和 IndexedDB 等。

Cookie

cookie 是关键-值对存储在浏览器中的文本文件,具有以下特点:

  • 保存在客户端;
  • 大小为 4KB 左右;
  • 可以设置过期时间;
  • 跨同一个域名的网页之间传输。

以下是设置 cookie 的示例:

document.cookie = "username=John Doe; expires=Thu, 18 Dec 2022 12:00:00 UTC; path=/";

localStorage

localStorage 使我们可以将关键-值对持久化到浏览器本地存储中,即使用户关闭浏览器也不会丢失这些数据。localStorage 具有以下特点:

  • 保存在客户端;
  • 可以存储大量的数据;
  • 不会随着会话的结束而丢失;
  • JavaScript 可以访问。

以下是使用 localStorage 存储和获取数据的示例:

localStorage.setItem("username", "John Doe");
const username = localStorage.getItem("username");
console.log(username); // "John Doe"

sessionStorage

sessionStorage 与 localStorage 相似,不同之处在于 sessionStorage 的数据在会话结束后就会被删除,数据也仅可以在同一个窗口或标签页中被访问。

以下是使用 sessionStorage 存储和获取数据的示例:

sessionStorage.setItem("username", "John Doe");
const username = sessionStorage.getItem("username");
console.log(username); // "John Doe"

IndexedDB

IndexedDB 是一种可以存储结构化数据的客户端数据库,在浏览器内部存储数据。它允许我们以异步方式存储和检索大量的对象,支持索引和范围查询。IndexedDB 是完全异步的,并且使用基于 Promise 的 API。

以下是使用 IndexedDB 存储和获取数据的示例:

const request = indexedDB.open("myDatabase", 1);
request.onupgradeneeded = function(event) {
  const db = event.target.result;
  const objectStore = db.createObjectStore("customers", { keyPath: "id" });
  objectStore.createIndex("name", "name", { unique: false });
  objectStore.transaction.oncomplete = function(event) {
    const customerObjectStore = db.transaction("customers", "readwrite").objectStore("customers");
    customerObjectStore.add({ id: 1, name: "John Doe", age: 30 });
  };
};

DOM 编程

DOM(文档对象模型)是一个应用程序编程接口(API),它提供了一种用于 HTML 和 XML 文档的访问和操作的模式。通过使用 DOM,我们可以通过 JavaScript 更改 HTML 和 CSS。

以下是使用 DOM 修改 HTML 的示例:

<!DOCTYPE html>
<html>
<body>

<p id="demo">JavaScript 可以改变这个段落的内容。</p>

<button onclick="myFunction()">点击我</button>

<script>
function myFunction() {
  document.getElementById("demo").innerHTML = "Hello World!";
}
</script>

</body>
</html>

以上代码用按钮触发 JavaScript 函数,将 HTML 段落文本更改为“Hello World!”。

以下是使用 DOM 修改 CSS 的示例:

<!DOCTYPE html>
<html>
<head>
  <title>DOM 编程</title>
  <style>
    #demo {
      color: red;
      font-size: 36px;
    }
  </style>
</head>
<body>

<p id="demo">JavaScript 可以更改这段文本的颜色和字体大小。</p>

<button onclick="myFunction()">点击我</button>

<script>
function myFunction() {
  const x = document.getElementById("demo");
  x.style.color = "blue";
  x.style.fontSize = "48px";
}
</script>

</body>
</html>

以上代码用按钮触发 JavaScript 函数,将 HTML 段落文本的字体颜色更改为蓝色,字体大小更改为 48px。

总结

JavaScript 有许多数据存储解决方案和 DOM 编程方法。本攻略介绍了 cookie、localStorage、sessionStorage 和 IndexedDB 数据存储解决方案,以及使用 DOM 修改 HTML 和 CSS 的示例。根据您的需求,选择适当的方法来存储数据和编写动态的 Web 应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js 数据存储和DOM编程 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript常见数组方法之如何转置矩阵

    首先,需要了解什么是矩阵以及如何在JavaScript中表示矩阵。矩阵通常用二维数组表示,例如: const matrix = [ [1, 2], [3, 4], [5, 6] ]; 这个矩阵包含3行2列,可以认为是一个3×2的矩阵。 接下来,我们来介绍如何使用JavaScript常见数组方法来转置矩阵,即行变列,列变行。 方法一:使用reduce方法 我们…

    JavaScript 2023年5月27日
    00
  • 分析web应用内引用依赖的占比

    背景 针对目前团队自己开发的组件库,对当前系统内引用组件库占比进行统计分析,以实现对当前进度的总结以及后续的覆盖度目标制定。 主要思路 目前找到的webpack分析插件,基本都是针对打包之后的分析打包之后的chunk进行分析,但是我希望的是分析每个页面中的import数,对比一下在所有页面中的import数中有多少是使用了组件库的。所以就在网上看了一些相关资…

    JavaScript 2023年4月17日
    00
  • JS操作xml对象转换为Json对象示例

    下面是JS操作XML对象转换为JSON对象示例的完整攻略。 什么是XML对象和JSON对象? XML(Extensible Markup Language) 是一种文本格式的标记语言,用于存储和传输数据。XML 文件可作为 Web 文档来读取和呈现。 JSON(JavaScript Object Notation) 是一种轻量级的数据格式,它是一种文本格式的…

    JavaScript 2023年5月27日
    00
  • javascript常用的设计模式

    JavaScript常用的设计模式 设计模式是一种解决特定类问题的经验总结,是经验的提炼。在JavaScript中,设计模式可以帮助我们避免重复的代码,提高代码的可维护性和可读性。下面是常见的JavaScript设计模式: 工厂模式 工厂模式是一种创建型模式,通过定义一个用于创建对象的接口来创建具体的对象实例。 function Car(type, bran…

    JavaScript 2023年6月10日
    00
  • js停止输出代码

    如果想要在JavaScript中停止当前代码的执行,可以使用以下几种方法: 1. 使用throw语句抛出错误 使用throw语句可以抛出一个自定义的错误,从而终止代码执行。示例代码如下: function divide(a, b) { if (b === 0) { throw new Error(‘除数不能为0!’); } return a / b; } t…

    JavaScript 2023年5月28日
    00
  • javascript打印大全(打印页面设置/打印预览代码)

    下面是详细讲解“javascript打印大全(打印页面设置/打印预览代码)”的攻略: 打印页面设置 打印页面设置主要是使用window.print()方法,这个方法用于打印当前页面。在使用window.print()前,我们常常需要设置一些打印页面参数,如纸张大小、边距、横向还是纵向等等。 设置纸张大小 @media print { @page { size…

    JavaScript 2023年5月19日
    00
  • 今天是星期几的4种JS代码写法

    下面我将详细讲解今天是星期几的4种JS代码写法。 方法一:使用Date对象 很多人可能都知道JS中有一个Date对象,它可以获取当前时间和日期的信息。利用它计算今天是星期几非常容易。 const today = new Date().getDay(); const weekdays = ["Sunday", "Monday&qu…

    JavaScript 2023年5月27日
    00
  • JavaScript极简入门教程(一):基础篇

    JavaScript是一门适用于Web前端开发的脚本语言,可以为静态的HTML页面增加一定的动态效果和交互性。 本篇教程是JavaScript的基础篇,主要介绍JavaScript的基础语法和常见数据类型,是初学者了解JavaScript的必备知识。具体内容如下: JavaScript基础语法 1. 注释 JavaScript的注释有两种方式,单行注释使用/…

    JavaScript 2023年5月17日
    00
合作推广
合作推广
分享本页
返回顶部