IndexedDB:不仅仅是客户端持久化缓存技术ThingJS

摘要:
本地缓存技术提高了用户的访问体验IndexedDB(客户端缓存持久性)技术优势大型3D项目的本地缓存技术:也称为客户端缓存持久化技术。使用JSON数据格式。作为浏览器数据存储解决方案,①本地缓存技术提高了用户访问体验ThingJS平台支持物联网3D可视化项目的在线开发,用户可以访问设备进行3D渲染。3D场景中的文件级数据将被写入访问设备的本地缓存数据库。清除浏览器缓存不会影响缓存的三维模型文件。
  1. 本地缓存技术提升用户访问体验
  2. IndexedDB(客户端缓存持久化)技术优势
  3. 大型3D项目本地缓存技术实测

简介:为提升用户访问体验,缩短项目加载时间,ThingJS平台推出3D场景本地缓存技术:IndexedDB,也称客户端缓存持久化技术。通俗来说,IndexedDB就是浏览器提供的本地数据库,它可以被网页脚本创建和操作,使用JSON数据格式。下面详细介绍IndexedDB本地缓存技术,作为一种浏览器数据存储方案,对场景项目开发有极大的意义。

① 本地缓存技术提升用户访问体验

ThingJS平台支持在线开发面向物联网的3D可视化项目,当用户初次访问项目文件时,需先将3D模型数据缓存到本地,由用户访问设备进行3D渲染。若项目模型文件过大,导致加载时间长,势必影响用户访问体验,该如何访问降低速度,提升用户体验呢?

为缩短场景项目加载时间,ThingJS平台推出3D场景本地缓存技术:IndexedDB,即客户端持久化数据库!若你的项目使用本缓存技术,在初次访问后,3D场景中的文件级别数据将写入访问设备本地缓存数据库,在客户端实现永久的生命周期,清除浏览器缓存也不影响已缓存的3D模型文件。

② IndexedDB(客户端缓存持久化)技术优势

本地浏览器拥有三种永久存储数据技术,分别为Web Storage、IndexedDB、Web SQL。IndexedDB具备查询高效、存储空间大和异步操作等技术特征,有巨大的优势。

查询高效。IndexedDB是一种轻量级NOSQL数据库,是由浏览器自带。相比Web Sql更加高效,包括索引、事务处理和查询功能。

存储空间大。IndexedDB 的储存空间比 LocalStorage 大得多,一般来说不少于 250MB,甚至没有上限。在HTML5本地存储中,IndexedDB存储的数据则是最多的。

异步操作。 IndexedDB 操作时不会锁死浏览器,用户依然可以进行其他操作,这与 LocalStorage 形成对比,后者的操作是同步的。异步设计是为了防止大量数据的读写,拖慢网页的表现。

与此同时,IndexedDB 内部采用对象仓库存放数据。所有类型的数据都可以直接存入,包括 JavaScript 对象,满足ThingJS在线平台的数据存储需求。

③ 大型3D项目本地缓存技术实测

大型3D场景项目结构复杂,对精度要求高,容易产生大量数据读取。ThingJS推出3D场景本地(客户端)缓存持久化技术,目的是降低数据传输压力,大大提高大型场景项目开发体验。

请注意,ThingJS平台任何场景加载首次需常规读取,第二次打开将执行本地缓存命令。即用户再次访问此项目时,省略3D模型缓存过程,直接由访问设备渲染3D模型,加载因此速度得以大幅提升,具体性能取决于电脑网络速度或开发综合环境,欢迎体验。

据实测,大型3D项目加载速度普遍可提升3倍以上,部分超大型项目加载速度可提升至10倍。
在这里插入图片描述

如上图某场景,首次加载至少需要62秒,启用本地缓存功能之后,大型3D场景加载仅用19秒,性能提速62%
本地缓存技术具体由thing.cached.min.js库封装,直接调用JavaScript脚本加载运行。请参考以下操作步骤:

  1. 代码界面引用thing.cached.min.js文件封装库;
  2. 第一次加载,缓存文件后缀为’glb’, ‘gltf’, ‘bin’, ‘json’, ‘jpg’, 'png’模型资源;
  3. 再次的加载将优先从本地缓存文件里读取,目前仅支持模型类的文件对象,后续会有扩展。

相关示例进入ThingJS在线开发平台查看:
http://www.thingjs.com/guide/?m=sample
在这里插入图片描述

免责声明:文章转载自《IndexedDB:不仅仅是客户端持久化缓存技术ThingJS》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Ubuntu16.04使用命令行安装jdk1.8个人技术博客的选择:CSDN、博客园、简书、知乎专栏还是Github Page?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python写http post请求的四种请求体

  Web自动化测试(25)  HTTP 协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。常见的四种编码方式如下: 1、application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enc...

Eclipse+APKTool动态调试APK

1. 所需工具 Eclipse. Apktool v2.0.6. 安卓SDK工具.   2. 重编译APK     apktool d -d -o test test.apk 此时当前test目录下就是apktool解压后的所有文件。     apktool b -d test 此时testdist目录下会生成一个apk文件,接下来将apk签名后安装进...

JDK反编译的两种方式

环境 链接:https://pan.baidu.com/s/1DwWj5Kt4Gfi68k_EOAea_Q 提取码:57j2 apktools+dex2jar+gd-gui 方式一: apktools 1.把apk文件与apktool放在同一目录 2.命中cmd, 直接编译apktool.bat d base.apk(去到当前apktool目录下)...

提高github下载速度的方法【100%有效】可达到2MB/s

转:https://blog.csdn.net/kcx64/article/details/83866633 在国内从github上面下载代码的速度峰值通常都是20kB/s。这种速度对于那些小项目还好,而对于大一些的并且带有很多子模块的项目来讲就跟耽误时间。虽然有很多提速的方法,但是实际用起来并不稳定。这里提供一种新的方法,下载速度可以达到 1~2MB/s...

日志配置(springboot、mybatis、Lombok)

Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容 SLF4J——Simple Logging Facade For Java,它是一个针对于各类Jav...

centos 卸载删除 mysql (mariadb)

第一步: yum remove mariadb mariadb-server 卸载 mariadb 的软件部分 第二步: rm -rf /var/lib/mysql 删除数据目录,上述为默认的数据目录,如果有修改过,则先查看配置文件 /etc/my.cnf 第三步: rm /etc/my.cnf 删除配置文件 参考: centOS 7 卸载 mariadb...