当前位置: 首页 > news >正文

关于电视剧的网站设计网页临漳seo整站排名

关于电视剧的网站设计网页,临漳seo整站排名,金华网站建设yw126,商务网站建设实训前言 由于开发3D可视化项目经常用到模型#xff0c;而一个模型通常是几m甚至是几十m的大小对于一般的服务器来讲加载速度真的十分的慢#xff0c;为了解决这个加载速度的问题#xff0c;我想到了几个本地存储的。 首先是cookie,cookie肯定是不行的#xff0c;因为最多以只…前言 由于开发3D可视化项目经常用到模型而一个模型通常是几m甚至是几十m的大小对于一般的服务器来讲加载速度真的十分的慢为了解决这个加载速度的问题我想到了几个本地存储的。 首先是cookie,cookie肯定是不行的因为最多以只能存4k 其次localStorage最多能存5m(不是一个key的大小是所有key的总大小最多加起来最多5m)相对于cookie已经打了很多了。但是当遇到大模型还是不够实际开发中大部分模型都是10m-30m的。 经过网上的相关资料的搜索了解到了indexDBindexD就正好合适了因为我发现我常用的3d框架three.js他们也是使用indexDB去做存储而且存储大小是250m以上受计算机硬件和浏览器厂商的限制。 一、直接上代码更看结果更直观 懒人直接看入门的全部代码 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0titleTitle/titlelink href./favicon.png /head body /body scriptlet dbName helloIndexDB, version 1, storeName helloStorelet indexedDB window.indexedDBlet dbconst request indexedDB.open(dbName, version)request.onsuccess function(event) {db event.target.result // 数据库对象console.log(数据库打开成功)}request.onerror function(event) {console.log(数据库打开报错)}request.onupgradeneeded function(event) {// 数据库创建或升级的时候会触发console.log(onupgradeneeded)db event.target.result // 数据库对象let objectStoreif (!db.objectStoreNames.contains(storeName)) {objectStore db.createObjectStore(storeName, { keyPath: id }) // 创建表// objectStore.createIndex(name, name, { unique: true }) // 创建索引 可以让你搜索任意字段}}// 添加数据function addData(db, storeName, data) {let request db.transaction([storeName], readwrite) // 事务对象 指定表格名称和操作模式只读或读写.objectStore(storeName) // 仓库对象.add(data)request.onsuccess function(event) {console.log(数据写入成功)}request.onerror function(event) {console.log(数据写入失败)throw new Error(event.target.error)}}// 根据id获取数据function getDataByKey(db, storeName, key) {let transaction db.transaction([storeName]) // 事务let objectStore transaction.objectStore(storeName) // 仓库对象let request objectStore.get(key)request.onerror function(event) {console.log(事务失败)}request.onsuccess function(event) {console.log(主键查询结果: , request.result)}}// 根据id修改数function updateDB(db, storeName, data) {let request db.transaction([storeName], readwrite) // 事务对象.objectStore(storeName) // 仓库对象.put(data)request.onsuccess function() {console.log(数据更新成功)}request.onerror function() {console.log(数据更新失败)}}// 根据id删除数据function deleteDB(db, storeName, id) {let request db.transaction([storeName], readwrite).objectStore(storeName).delete(id)request.onsuccess function() {console.log(数据删除成功)}request.onerror function() {console.log(数据删除失败)}}// 由于打开indexDB是异步的加个定时器避免 db对象还没获取到值导致 报错setTimeout(() {addData(db, storeName, {id: new Date().getTime(), // 必须且值唯一name: 张三,age: 18,desc: helloWord})getDataByKey(db, storeName, 1638160036008)updateDB(db, storeName, {id: 1638164880484, desc: 修改的内容})deleteDB(db, storeName, 1638164870439)}, 1000)/script /html 第一步准备环境和基本的html页面 基本的html代码 ​!DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0titleTitle/title /head body /body script/script /html 第二步打开数据库如果没有自动创建 let dbName helloIndexDB, version 1, storeName helloStorelet indexedDB window.indexedDBlet dbconst request indexedDB.open(dbName, version)request.onsuccess function(event) {db event.target.result // 数据库对象console.log(数据库打开成功)}request.onerror function(event) {console.log(数据库打开报错)}request.onupgradeneeded function(event) {// 数据库创建或升级的时候会触发console.log(onupgradeneeded)db event.target.result // 数据库对象let objectStoreif (!db.objectStoreNames.contains(storeName)) {objectStore db.createObjectStore(storeName, { keyPath: id }) // 创建表// objectStore.createIndex(name, name, { unique: true }) // 创建索引 可以让你搜索任意字段}} 运行如上面的代码后打开控制台可以看到如下效果数据库已经创建完成了此时什么数据都没有 第三步存入一个helloWorld  // 添加数据function addData(db, storeName, data) {let request db.transaction([storeName], readwrite) // 事务对象 指定表格名称和操作模式只读或读写.objectStore(storeName) // 仓库对象.add(data)request.onsuccess function(event) {console.log(数据写入成功)}request.onerror function(event) {console.log(数据写入失败)throw new Error(event.target.error)}}// 由于打开indexDB是异步的加个定时器避免 db对象还没获取到值导致 报错setTimeout(() {addData(db, storeName, {id: new Date().getTime(), // 必须且值唯一name: 张三,age: 18,desc: helloWord})}, 1000) 刷新页面后可以看到如下结果,此时我这里已经存进去了我刷新了两次所以有两条数据 第四步封装删除查询修改方法并分别执行查看结果 // 根据id获取数据function getDataByKey(db, storeName, key) {let transaction db.transaction([storeName]) // 事务let objectStore transaction.objectStore(storeName) // 仓库对象let request objectStore.get(key)request.onerror function(event) {console.log(事务失败)}request.onsuccess function(event) {console.log(主键查询结果: , request.result)}}// 根据id修改数function updateDB(db, storeName, data) {let request db.transaction([storeName], readwrite) // 事务对象.objectStore(storeName) // 仓库对象.put(data)request.onsuccess function() {console.log(数据更新成功)}request.onerror function() {console.log(数据更新失败)}}// 根据id删除数据function deleteDB(db, storeName, id) {let request db.transaction([storeName], readwrite).objectStore(storeName).delete(id)request.onsuccess function() {console.log(数据删除成功)}request.onerror function() {console.log(数据删除失败)}}// 由于打开indexDB是异步的加个定时器避免 db对象还没获取到值导致 报错setTimeout(() {// addData(db, storeName, {// id: new Date().getTime(), // 必须且值唯一// name: 张三,// age: 18,// desc: helloWord// })getDataByKey(db, storeName, 1638160036008)updateDB(db, storeName, {id: 1638164880484, desc: 修改的内容})deleteDB(db, storeName, 1638164870439)}, 1000) 执行上面的代码后结果后我这边的结果如下 二、封装indexDB库 第一步封装类库 /*** 封装的方法以及用法* 打开数据库*/ export function openDB(dbName, storeName, version 1) {return new Promise((resolve, reject) {let indexedDB window.indexedDBlet dbconst request indexedDB.open(dbName, version)request.onsuccess function(event) {db event.target.result // 数据库对象resolve(db)}request.onerror function(event) {reject(event)}request.onupgradeneeded function(event) {// 数据库创建或升级的时候会触发console.log(onupgradeneeded)db event.target.result // 数据库对象let objectStoreif (!db.objectStoreNames.contains(storeName)) {objectStore db.createObjectStore(storeName, { keyPath: id }) // 创建表// objectStore.createIndex(name, name, { unique: true }) // 创建索引 可以让你搜索任意字段}}}) }/*** 新增数据*/ export function addData(db, storeName, data) {return new Promise((resolve, reject) {let request db.transaction([storeName], readwrite) // 事务对象 指定表格名称和操作模式只读或读写.objectStore(storeName) // 仓库对象.add(data)request.onsuccess function(event) {resolve(event)}request.onerror function(event) {throw new Error(event.target.error)reject(event)}}) }/*** 通过主键读取数据*/ export function getDataByKey(db, storeName, key) {return new Promise((resolve, reject) {let transaction db.transaction([storeName]) // 事务let objectStore transaction.objectStore(storeName) // 仓库对象let request objectStore.get(key)request.onerror function(event) {reject(event)}request.onsuccess function(event) {resolve(request.result)}}) }/*** 通过游标读取数据*/ export function cursorGetData(db, storeName) {let list []let store db.transaction(storeName, readwrite) // 事务.objectStore(storeName) // 仓库对象let request store.openCursor() // 指针对象return new Promise((resolve, reject) {request.onsuccess function(e) {let cursor e.target.resultif (cursor) {// 必须要检查list.push(cursor.value)cursor.continue() // 遍历了存储对象中的所有内容} else {resolve(list)}}request.onerror function(e) {reject(e)}}) }/*** 通过索引读取数据*/ export function getDataByIndex(db, storeName, indexName, indexValue) {let store db.transaction(storeName, readwrite).objectStore(storeName)let request store.index(indexName).get(indexValue)return new Promise((resolve, reject) {request.onerror function(e) {reject(e)}request.onsuccess function(e) {resolve(e.target.result)}}) }/*** 通过索引和游标查询记录*/ export function cursorGetDataByIndex(db, storeName, indexName, indexValue) {let list []let store db.transaction(storeName, readwrite).objectStore(storeName) // 仓库对象let request store.index(indexName) // 索引对象.openCursor(IDBKeyRange.only(indexValue)) // 指针对象return new Promise((resolve, reject) {request.onsuccess function(e) {let cursor e.target.resultif (cursor) {list.push(cursor.value)cursor.continue() // 遍历了存储对象中的所有内容} else {resolve(list)}}request.onerror function(ev) {reject(ev)}}) }/*** 更新数据*/ export function updateDB(db, storeName, data) {let request db.transaction([storeName], readwrite) // 事务对象.objectStore(storeName) // 仓库对象.put(data)return new Promise((resolve, reject) {request.onsuccess function(ev) {resolve(ev)}request.onerror function(ev) {resolve(ev)}}) }/*** 删除数据*/ export function deleteDB(db, storeName, id) {let request db.transaction([storeName], readwrite).objectStore(storeName).delete(id)return new Promise((resolve, reject) {request.onsuccess function(ev) {resolve(ev)}request.onerror function(ev) {resolve(ev)}}) }/*** 删除数据库*/ export function deleteDBAll(dbName) {console.log(dbName)let deleteRequest window.indexedDB.deleteDatabase(dbName)return new Promise((resolve, reject) {deleteRequest.onerror function(event) {console.log(删除失败)}deleteRequest.onsuccess function(event) {console.log(删除成功)}}) }/*** 关闭数据库*/ export function closeDB(db) {db.close()console.log(数据库已关闭) }export default {openDB,addData,getDataByKey,cursorGetData,getDataByIndex,cursorGetDataByIndex,updateDB,deleteDB,deleteDBAll,closeDB } 第二步使用类库该库的使用方法如下 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0titleTitle/titlelink href./favicon.png /head body /body注意要加 typemodule script typemodule -- script typemoduleimport IndexDB from ./IndexDB.js(async function() {const dbName myDB, storeName db_1const db await IndexDB.openDB(dbName, storeName, 1)var data await IndexDB.addData(db, storeName, {id: 111, // 必须且值唯一name: 张三,age: 18,desc: helloWord})console.log(data)var data await IndexDB.getDataByKey(db, storeName, 111)console.log(data)var data await IndexDB.updateDB(db, storeName, { id: 111, desc: 修改的内容 })console.log(data)var data await IndexDB.deleteDB(db, storeName, 111)console.log(data)})() /script /html 三、使用indexdb第三方类库indexdbwrapper(这种方式需要懂得使用打包工具开发不懂跳过) /* 下载cnpm install --save indexdbwrapper */ // 引入 import IndexDBWrapper from indexdbwrapper // 使用 async function dbTest() {const dbName dbName, storeName storeName, version 1const db new IndexDBWrapper(dbName, version, {onupgradeneeded(event) {const db event.target.result // 数据库对象let objectStoreif (!db.objectStoreNames.contains(storeName)) {objectStore db.createObjectStore(storeName, { keyPath: id }) // 创建表// objectStore.createIndex(createTime, createTime, { unique: false }) // 创建索引 可以让你搜索任意字段}}})await db.open()await db.add(storeName, { id: new Date().getTime(), updateTime: new Date().getTime() })console.log(await db.get(storeName, 1639015754840))console.log(await db.put(storeName, { id: 1639015754840, put: put2 }))console.log(await db.get(storeName, 1639015754840))console.log(await db.delete(storeName, 1639015754840))// console.log(await db.clear(storeName)) } dbTest()
http://www.hkea.cn/news/14582558/

相关文章:

  • 网站营销计划书网站图片要多少像素
  • 青岛经纬建设工程有限公司网站广告门网站
  • 汉中做网站的公司网站导航页面设计
  • 企业网站建设的背景郴州网站建设哪家比较好
  • 学做网站需要下载网站app
  • 网站优化系统wordpress 聚合页面
  • 企业营销型网站策划中建三局招聘出国务工
  • 企业的网站建设需要做什么html5基础知识
  • 重庆电子商务网站德州市市政工程建设总公司网站
  • 网站的结构包括哪些内容兰州网站优化软件
  • 江苏建设类高级工程师在那个网站公示温州网站建设推广
  • 安徽集团网站建设社区微网站建设需求分析
  • 做银行设计有好的网站参考吗找人做任务网站有哪些
  • 网站建设图书馆管理系统做网站字体用什么格式
  • 有什么好的书写网站国家工信部网站备案查询系统
  • 江苏省建设厅网站证件查询湖州网站设计
  • 上海定制建设网站网站优化可以自己做么
  • 网站模板之家免费模板佛山网站策划哪家专业
  • 犀牛网站建设公司东营会计信息网官网报名
  • 郑州网站建设亻汉狮网络东莞网站建设(信科分公司)
  • 上海手机响应式网站建设设计黄冈建设局网站首页
  • 中国制造网官网入口国外注册网站做百度seo
  • 河南省住房建设厅官方网站青岛发现51例阳性
  • 黑龙江建设网查ca证书wordpress速度优化插件
  • 各大城市网站哪里做做网批有专门的网站吗
  • 网站建设运营维护方案电商系统哪家好排行榜
  • 商洛市商南县城乡建设局网站网站开发人员的岗位有
  • 企业网站推广工具东营住房和城乡建设信息网
  • 网站被**泛解析后的解决方法建设门户网站系统的必要性
  • 新开的网站怎么做seo优化简单网页制作模板免费