前端数据库indexedDB
前言在以往了的浏览器认知中,前端是不怎么接触数据库的,前端的,因为前端存储方案有很多,比如cookie、sessionStorage,localStorage等等,但是其实浏览器也是有两种数据库:webSQL和indexedDb,但是浏览器使用的话一般使用indexedDB数据库,webSQL基本废弃(原因百度),今天学习一下indexedDB。
IndexedDB简介MDN官网是这样解释Indexed DB的:
IndexedDB 是一种底层 API,用于在客户端存储大量的结构化数据(也包括文件/二进制大型对象(blobs))。该 API 使用索引实现对数据的高性能搜索。虽然 Web Storage 在存储较少量的数据很有用,但对于存储更大量的结构化数据来说力不从心。而 IndexedDB 提供了这种场景的解决方案。
简单明了的说就是IndexedDB主要用来客户端存储大量数据而生的,我们都知道cookie、localStorage等存储方式都有存储大小限制。如果数据量很大,且都需要客户端存储时,那么就可以使用IndexedDB数据库。
各个存储方式对比:
归根到底,当你需要在前 ...
拖拽列表实现
前言最近在写小程序的过程中遇到一个拖拽排序菜单项的功能,搜索了一些组件,结果强差人意,所以借鉴网上的一些实现方案,去自己写一个例子,以此记录,方便以后学习使用。
确定需求 1.首先实现拖拽。 2.拖拽之后实现重新排序,且动态平滑。
思路1.首先,基于简易化,拖拽项大小是一样的,不规则的先不考虑,先爬再跑!!2.然后是既然动态平滑,肯定是是使用过渡 transition,3.实现拖拽的话,那这边就需要脱离文档流了,定位选择transform实现4.使用自定义手势, 如 touchstart, touchmove, touchend, 使用自定义手势可以方便我们控制每一个细节.5.排序的话就是通过上面 touchstart, touchmove, touchend 这三兄弟拿到触摸信息后动态计算出当前元素的排序位置,然后根据当前激活元素的排序位置去动态更换数组内其他元素的位置. 大概意思就是十个兄弟做一排, 老大起来跑到老三的位置, 老三看了看往前移了移, 老二看了看也往前移了移. 当然这是正序, 还有逆序, 比如老十跑到了老大的位置, 那么老大到老九都得顺序后移一个位置 好了这就开始吧。 ...
css提升长列表性能渲染
前言在很多网页开发的时候,都会涉及到长列表,当数据量特别多的时候,渲染会非常慢,有时候甚至会卡死,这严重影响了用户的体验。
因此我们会经常采用虚拟滚动、分页、上拉加载更多等不同的方式来进行优化,这些方式的思想都是一样的,都是只渲染可见区域,等用户需要时再加载更多的内容。而以上的方式无论哪种,都需要写大量的js或者css逻辑去实现。而现在,我们多了一种方式—— content-visibility。只需要一行CSS代码,就可以实现可见网页只加载可见区域内容,使网页的渲染性能得到数倍的提升!
介绍content-visibility 是一个css属性,它控制一个元素是否呈现其内容,能让用户潜在地控制元素的呈现。用户可以使用它跳过元素的呈现(包括布局和绘制),让页面的初始直到用户需要为止,渲染得到极大的提升。
Value
content-visibility属性有三个可选值:
visible: 默认值。对布局和呈现不会产生什么影响。
hidden: 元素跳过其内容的呈现。用户代理功能(例如,在页面中查找,按Tab键顺序导航等)不可访问已跳过的内容,也不能选择或聚焦。类似于对其内容设置了d ...
webpack学习之路(实践篇)
前言在上篇 《学习 Webpack5 之路(基础篇)》中介绍了 Webpack 是什么,为什么选择 Webpack,Webpack 的基本概念介绍 3 个问题。
本篇将从实践出发,在第一章节《基础配置》中使用 webpack 搭建一个基础的支持模块化开发的项目,在第二章节《进阶配置》中使用 webpack 搭建一个 SASS + TS + React 的项目。
本文依赖的 webpack 版本信息如下:
webpack-cli@4.7.2
webpack@5.46.0
一、基础配置接下来一起配置一个基础的 Webpack。
将支持以下功能:
分离开发环境、生产环境配置;模块化开发;sourceMap 定位警告和错误;动态生成引入 bundle.js 的 HTML5 文件;实时编译;封装编译、打包命令。想直接看配置的同学 -> 本文源码地址:webpack Demo0
新建项目新建一个空项目:
123456// 新建 webpack-demo 文件夹mkdir webpack-demo// 进入 webpack-demo 目录cd ./webpack-demo// 初始化项 ...
webpack学习之路(基础篇)
前言看过一句话,记录学习的过程是最好的学习方式,把自己学到的东西尝试表达和并分享,在分享的过程中,找到一个个同行的小伙伴,一起交流、学习,感受到学习技术的简单和纯粹。
一、webpack是什么引入 webpack 官网[3]介绍:
本质上,webpack 是一个现代 JavaScript 应用程序的_静态模块打包器(module bundler)_ 。当 webpack 处理应用程序时,它会递归地构建一个_依赖关系图(dependency graph)_ ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
webpack 官网[4] 图:
在图中我们可以看到,webpack 将左侧错综复杂的各自不同类型文件的模板依赖关系,包括 .js、.hbs、.cjs、.sass、.jpg、.png 等类型文件,打包成 .js、.css、.jpg、.png 4 种类型的静态资源。
简单来说,webpack 就是一个静态资源打包工具,负责将项目中依赖的各个模块,打包成一个或多个文件。
二、为什么选择webpack
其实现在的打包工具有很多,在此不进行其他 ...
前端判断数据类型
JavaScript数据类型的一些总结