javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > JS存储方式Cookie到IndexedDB

JavaScript存储方式Cookie到IndexedDB全解析

作者:余生颓废838

这篇文章主要介绍了JavaScript存储方式Cookie到IndexedDB的相关资料,IndexedDB是一种客户端存储技术,允许Web应用程序在用户的浏览器中存储和检索数据,即使在没有网络连接的情况下也能工作,需要的朋友可以参考下

Javascript本地存储的方式有哪些?区别及应用场景?

Cookie

存储大小约4KB,每次HTTP请求自动携带,可设置过期时间。适用于会话管理、用户标识等小数据存储场景,但频繁请求会增加带宽消耗。

Web Storage

IndexedDB

存储大小通常超过250MB,支持事务和索引查询。适用于复杂、大量结构化数据(如离线应用缓存)。

Cache API

配合Service Worker缓存网络请求,适用于PWA应用的资源离线存储。

Vue 3中Treeshaking特性是什么?举例说明

Treeshaking指通过静态代码分析移除未使用的代码(Dead Code),减少打包体积。Vue 3的模块化设计支持按需引入。
例如:

import { ref } from 'vue'; // 只打包ref相关代码

若未使用computed,则不会将其打包。

Vue中nextTick的理解与作用

nextTick将回调延迟到下次DOM更新周期后执行,确保操作基于最新的DOM状态。
应用场景:

this.message = '更新';
this.$nextTick(() => {
  console.log(document.getElementById('el').textContent); // 获取更新后的DOM
});

Real DOM与Virtual DOM的区别及优缺点

Real DOM

直接操作浏览器渲染树,更新慢且重绘成本高,但精确控制性强。

Virtual DOM

内存中的轻量DOM表示,通过Diff算法批量更新Real DOM,提升性能,但需要额外内存和计算开销。

React Router中HashRouter和BrowserRouter的区别与原理

HashRouter

使用URL的#部分(如/home#section),无需服务器配置,兼容性好,但SEO不友好。

BrowserRouter

基于HTML5 History API(如/home),需服务器支持重定向,URL更简洁,适合SEO。

React Fiber架构的理解与解决的问题

Fiber将渲染任务拆分为可中断的小任务单元,解决同步渲染导致的页面卡顿问题,支持优先级调度和时间切片。

React类组件与函数组件的区别

类组件

函数组件

TypeScript中的类型断言

类型断言强制指定值的类型,绕过类型检查:

const str: any = 'hello';
const len = (str as string).length;

JavaScript事件代理与应用场景

事件代理利用事件冒泡在父元素处理子元素事件,减少监听器数量。

场景:动态列表项点击(如ul代理li的点击事件)。

防抖与节流的区别及实现

防抖:连续触发时只执行最后一次(如搜索框输入)。

function debounce(fn, delay) {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), delay);
  };
}

节流:固定间隔执行一次(如滚动事件)。

function throttle(fn, interval) {
  let last = 0;
  return (...args) => {
    const now = Date.now();
    if (now - last >= interval) {
      fn(...args);
      last = now;
    }
  };
}

事件循环的工作原理

事件循环分为宏任务(如setTimeout)和微任务(如Promise)。

执行顺序:同步代码 → 微任务队列清空 → 宏任务队列取一个任务 → 重复。

回流与重绘的触发场景

回流:布局改变(如窗口大小、元素位置)。

重绘:样式改变但不影响布局(如颜色)。优化:避免频繁读写DOM,使用transform替代top/left

TypeScript泛型的理解与应用场景

泛型创建可复用的类型组件:

function identity<T>(arg: T): T {
  return arg;
}

场景:API响应类型封装、工具函数。

Vue动态添加data属性的问题与解决

直接添加属性非响应式,需使用Vue.setthis.$set

this.$set(this.data, 'newProp', value);

React中setState的同步/异步性

在React事件处理中为异步(批量更新),在setTimeout或原生事件中为同步。

Vue中keep-alive的应用场景

缓存组件状态,避免重复渲染。场景:标签页切换、表单保存后返回。

React中useMemo与useCallback的区别

useMemo缓存计算结果,useCallback缓存函数本身。

const memoValue = useMemo(() => compute(a), [a]);
const memoFn = useCallback(() => compute(a), [a]);

Redux的工作原理

单向数据流
Action → Dispatch → Reducer → Store → View

解决组件间状态共享问题,支持中间件扩展。

React合成事件

封装原生事件,提供跨浏览器一致性,事件委托到根容器,提升性能。

JavaScript数字精度丢失问题与解决

原因:浮点数IEEE 754标准存储导致(如0.1 + 0.2 !== 0.3)。

解决

总结 

到此这篇关于JavaScript存储方式Cookie到IndexedDB的文章就介绍到这了,更多相关JS存储方式Cookie到IndexedDB内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文