Day: 2022年10月16日

web客户端存储

现代 web 浏览器提供了很多在用户电脑 web 客户端存放数据的方法 — 只要用户的允许 — 可以在它需要的时候被重新获得。这样能让你存留的数据长时间保存,保存站点和文档在离线情况下使用,保留你对其站点的个性化配置等等。本篇文章只解释它们工作的一些很基础的部分。

Prerequisites: JavaScript 基础 (查看 第一步构建的块JavaScript 对象), 基础的客户端 API
Objective: 学习如何使用客户端存储 API 来存储应用数据。

IndexedDB API

indexedDB 是用于客户端存储大量结构化数据(包括文件/blob)的低级 API。此 API 使用索引来启用对这些数据的高性能搜索。虽然Web 存储对于存储少量数据很有用,但它对于存储大量结构化数据的用处不大。IndexedDB 提供了一个解决方案。这是 MDN 的 IndexedDB 覆盖范围的主要登录页面——在这里我们提供了指向完整 API 参考和使用指南、浏览器支持详细信息以及关键概念的一些解释的链接。

注意:此功能在Web Workers中可用

注意: IndexedDB API 功能强大,但对于简单的情况可能看起来过于复杂。如果您更喜欢简单的 API,请尝试另请参阅部分中的库,这些库使 IndexedDB 对程序员更友好。

浏览器数据库 IndexedDB(一) 概述

IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。

背景

随着浏览器的功能不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少从服务器获取数据,直接从本地获取数据。

现有的浏览器数据储存方案,都不适合储存大量数据:Cookie 的大小不超过4KB,且每次请求都会发送回服务器;LocalStorage 在 2.5MB 到 10MB 之间(各家浏览器不同),而且不提供搜索功能,不能建立自定义的索引。所以,需要一种新的解决方案,这就是 IndexedDB 诞生的背景。…

编写更好代码的 50 条 JavaScript 最佳实践规则

JavaScript 功能强大且灵活,它允许您以任何您喜欢的方式编写代码,并尝试一些非常不寻常的事情,这些事情可能会导致代码中的错误。以下是我学到的关于 JavaScript 编码的 50 件事,你应该知道。

始终“使用严格”开启

如果您为 JavaScript 使用任何库/框架或编译器,可能会启用“use strict”,但以防万一,请记住将其添加到文件和函数中。如果您不包含它,它将确保您得到会静默发生的错误。

一文看懂JS异步编程,回调、Promise、Generator、async/await用法详解

JavaScript是一种单线程的编程语言,需要通过异步的方式才能获得较高的性能。然而异步编程对于刚开始进行学习的时候往往会使大家产生困扰。

何为同步/异步
举个例子:如果现在你需要完成两件事情,烧水和吃饭。那么你会如何进行时间分配呢?

方法一:首先烧水,然后等待水烧开后再吃饭。…

javascript带var和不带var声明变量的区别是什么

如果您在全局范围内,那么差别不大。阅读Kangax 的答案以获得解释

如果你在一个函数中,那么var将创建一个局部变量,“不带 var”将查找作用域链,直到找到变量或到达全局作用域(此时它将创建它)

 

 

有区别

var x = 1 在当前范围内声明变量 x(又名执行上下文)。如果声明出现在函数中 - 声明了一个局部变量;如果它在全局范围内 - 声明一个全局变量。

x = 1另一方面,它仅仅是一个属性分配。它首先尝试解决x作用域链。如果它在该范围链中的任何位置找到它,它就会执行分配;如果它没有找到x,那么它只会在全局对象(它是作用域链中的顶级对象)上创建属性。x

现在,请注意它没有声明一个全局变量,它创建了一个全局属性。

两者之间的区别是微妙的,可能会令人困惑,除非您了解变量声明也会创建属性(仅在变量对象上)并且 Javascript