前端数据库 IndexedDB 详解:构建强大的离线Web应用

前端数据库 IndexedDB 详解:构建强大的离线Web应用

引言:为什么需要前端数据库?

在现代Web开发中,我们经常需要处理大量结构化数据。传统的localStoragesessionStorage虽然简单易用,但只能存储少量字符串数据,无法满足复杂应用的需求。IndexedDB应运而生——这是一个功能强大的浏览器内置数据库,支持存储大量结构化数据,提供索引、事务等高级功能,是实现离线应用、缓存机制和复杂数据处理的理想选择。

IndexedDB核心概念解析

1. 数据库(Database)

  • 每个源(协议+域名+端口)可以创建多个数据库
  • 每个数据库包含多个对象存储(类似于SQL中的表)

2. 对象存储(Object Store)

  • 存储键值对集合的主要容器
  • 键可以是路径、自增数字或自定义键生成器
  • 值可以是任何结构化可克隆对象

3. 索引(Index)

  • 允许高效查询对象存储中的数据
  • 可以基于对象属性创建多个索引
  • 支持唯一索引约束

4. 事务(Transaction)

  • 所有操作都在事务中执行
  • 三种模式:只读(readonly)、读写(readwrite)和版本变更(versionchange)
  • 提供原子性保证(全部成功或全部失败)

5. 游标(Cursor)

  • 用于遍历对象存储或索引中的记录
  • 支持方向控制(前进/后退)和范围查询

完整代码示例:实现一个联系人管理器

1. 初始化数据库

// 打开或创建数据库const dbName ='ContactDB';const dbVersion =1;const request = indexedDB.open(dbName, dbVersion); request.onerror=(event)=>{  console.error('数据库打开失败:', event.target.error);}; request.onupgradeneeded=(event)=>{ const db = event.target.result;// 创建对象存储(如果不存在)if(!db.objectStoreNames.contains('contacts')){ const store = db.createObjectStore('contacts',{  keyPath:'id', autoIncrement:true});// 创建索引 store.createIndex('name','name',{  unique:false}); store.createIndex('email','email',{  unique:true}); store.createIndex('phone','phone',{  unique:false}); store.createIndex('group','group',{  unique:false});}}; request.onsuccess=(event)=>{ const db = event.target.result; console.log('数据库成功打开');// 存储数据库引用供后续使用 window.contactDB = db;};

2. 添加联系人

functionaddContact(contact){ returnnew

Read more

AI协作天花板!CherryStudio让多模型协同像搭积木

AI协作天花板!CherryStudio让多模型协同像搭积木

文章目录 * 前言 * 【视频教程】 * 1. 本地安装 * 2. 配置模型服务 * 2.1 配置在线模型服务 * 2.2 配置本地模型服务 * 2.3 其他功能简单演示 * 2.3.1 创建智能体 * 2.3.2 AI文生图 * 3. 安装内网穿透工具 * 4. 配置公网地址 * 5. 配置固定公网地址 * 总结 前言 当单个AI还在"单打独斗"时,CherryStudio已经实现了多模型协作的突破!这款开源客户端支持同时接入OpenAI、Gemini、本地Ollama等10+模型,就像一个AI调度中心。最惊艳的是"智能体协作"功能——让GPT分析数据,让Claude写报告,

2026 年 AI 行业趋势深度报告

2026 年 AI 行业趋势深度报告

整合 IBM、NVIDIA、德勤、智源研究院、中国信通院等权威机构的最新研究,系统梳理 2026 年人工智能产业的关键趋势、技术突破与市场格局。 指标数值2026 年全球 AI 市场规模预测$9,000 亿+企业表示 AI 帮助增加年收入88%AI 行业全球就业岗位1,160 万+企业计划增加 AI 预算86% 数据来源:NVIDIA State of AI 2026 · IBM Think 2026 · 德勤技术趋势 2026 · 智源研究院 · CAICT · StartUs Insights 目录 * 一、全球 AI 市场规模概览 * 二、2026 年八大核心趋势

AI的提示词专栏:人设设定(Character Prompt)让模型 “扮演” 某角色

AI的提示词专栏:人设设定(Character Prompt)让模型 “扮演” 某角色

AI的提示词专栏:人设设定(Character Prompt)让模型 “扮演” 某角色 本文围绕人设设定(Character Prompt)展开全面解析,先阐释其核心概念,即通过赋予大语言模型特定身份、背景等,引导模型输出贴合需求的内容,而非改变底层参数;接着分析其提升输出专业性与深度、强化场景适配性等核心价值;随后详解构建 “立体角色” 的身份职业、专业背景等 5 个核心要素,介绍 “先总后分”“场景绑定” 等 6 个实战技巧,指出标签化、人设与任务脱节等 4 个常见误区并给出避坑方法;还提供内容创作、编程开发等 5 个行业场景的完整案例,最后总结核心要点并给出从模仿入手、聚焦小场景等实践建议,助力读者掌握该技术,提升模型输出质量。 人工智能专栏介绍     人工智能学习合集专栏是 AI 学习者的实用工具。它像一个全面的 AI 知识库,把提示词设计、

Prompt(提示词) 和 Skill(技能)区别

在 AI 智能体(Agent)和大模型应用的语境下,Prompt(提示词) 和 Skill(技能) 是两个核心但层级不同的概念。简单来说,Prompt 是“指令”,而 Skill 是“封装好的能力包”。 以下是两者的详细区别对比: 1. 核心定义不同 * Prompt (提示词): * 本质:是你发给 AI 的一次性输入指令。 * 作用:告诉 AI 当前具体要做什么、怎么做以及以什么风格回答。 * 类比:就像你对实习生说:“今天帮我写一份关于上海天气的周报,语气要活泼一点。” * 特点:临时性、即时性、依赖上下文窗口。每次对话都需要重新输入或引用。 * Skill (技能): * 本质:是持久化、模块化封装的能力集合。它通常包含了一组预设的 Prompt、规则(