- 博客(150)
- 收藏
- 关注
原创 ReturnType
function fn() { return { aaa: "aaa", bbb: "bbb", ccc: "ccc", ddd: "ddd", eee: "eee", };}let type: ReturnType<typeof fn>; // ReturnType 可以拿到函数 fn 返回值对象作为声明类型console.log(type.aaa);console.log(type.bbb);console.log(type.ccc
2022-05-27 19:27:40
538
原创 字符串自然排序
// html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &
2022-05-12 14:29:50
410
原创 indexedDB复合索引
目的:通过构建聚合索引,根据其中一个索引值匹配另一个索引值(不会对indexedDB数据进行深拷贝,只获取索引的值),提供性能优化// index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta nam
2022-05-05 16:59:49
1259
原创 在原有的 api url 域名前还串上了一串域名
比如:https://localhost/baidu.com/api/...原因可能是写api时写成了:https:/baidu.com/api/...,https://baidu.com写成了https:/baidu.com,变成了取当前根目录下的路径
2022-05-05 15:59:30
401
原创 onbeforeunload 处理“系统可能不会保存您所做的更改“弹框
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title
2022-05-05 14:17:12
4728
原创 window.open 父子页面通信
Parent.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
2022-04-25 17:27:47
983
原创 高亮匹配文本
index.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <
2022-04-13 14:33:22
224
原创 splitBulk 分割函数
/** * 批量数据分割操作 * @param limit 每次分割的数量 * @param datas 需要批量操作的数据 * @param cb 对分割后的数据进行处理的回调函数 */async function splitBulk(limit:number,datas:any[],cb:(subDatas) =>void){ const len = datas.length; for (let i = 0; i < len; i+=limit) {
2022-03-24 17:23:27
328
原创 webSocket-demo
demo GitHub地址webSocketDemo前端页面entry.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width
2022-03-17 18:19:39
1662
原创 crypto.ts
/** crypto 支持的加密/解密算法 */enum CRYPTO_ALGORITHM { /** RSA-OAEP算法 */ RSA = 'RSA-OAEP', // RSA 是非对称密钥加密的算法 /** CTR 模式下的 AES 算法*/ AES_CTR = 'AES-CTR', // AES 是对称密钥加密的算法,CTR 是一种分组加密的操作模式(mode) /** CBC 模式下的 AES 算法*/ AES_CBC = 'AES-CBC', // AES 是对称密钥加
2022-03-16 18:23:36
2420
原创 crypto_AES-GCM.ts 浏览器数据加密解密
class CryptoHelper { constructor(readonly enabled = false) {} private key: CryptoKey; // 密钥 private iv: Uint8Array; // 向量 /** * 将 str 格式的数据转化为 uint8Array * @param str */ private stringToUint8Array(str: string): Uint8Array { var arr =
2022-03-14 15:17:45
1232
原创 debounce 防抖函数
/** * 防抖 * @param fn 防抖包裹的函数 * @param delay 延迟时间 * @param option 配置 * @param {Boolean} immediate 是否在高频事件触发时,立即执行一次 * @param {Boolean} immediate 1.是否在高频事件结束后 2.满足延迟时间后 再执行一次事件 * 若 immediate = true & trailing = false , 则高频事件触发时,
2022-01-17 15:14:47
590
原创 instanceExecute 处理并发的promise
export function instanceExecute( executor: (...args) => Promise<any>, immediately = false) { let promise: Promise<any> = null; if (immediately) { return (...args) => executor(...args); } else { return (...args) => {
2022-01-17 14:59:53
305
原创 SimpleDB.ts
export function openSimpleDB( name: string, version: number, onUpgrade: (db: IDBDatabase) => void) { return new Promise<SimpleDB>((resolve, reject) => { const req = indexedDB.open(name, version); req.onupgradeneeded = () =>
2021-12-20 14:56:56
328
原创 forEach/forEachA.ts
export function forEach<T>(data: Array<T>,cb: (key: undefined, value: T, index: number) => any);export function forEach<T>(data: { [key: number]: T },cb: (key: string, value: T, index: number) => any);export function forEach<
2021-12-20 10:32:28
274
原创 休眠sleep函数
export function sleep(mill: number) { return new Promise<void>((resolve) => setTimeout(resolve, mill));}
2021-12-20 10:19:15
847
原创 ajax.ts
export function ajax(type: "GET" | "POST", url: string, data: any) { return new Promise<any>((resolve) => { let data_array, params, req; data = data || {}; type = type || "GET"; data_array = []; // 处理参数 for (const idx in
2021-07-21 15:59:39
146
原创 js实现进度条
效果图实现代码<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> <style type="text/css"> #progressComp {
2020-12-11 15:28:12
1035
原创 输入框识别按键,自动填充按键组合
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> </head> <body> <input type="text" id="myIn
2020-11-04 16:40:58
471
原创 node基础
源码git地址:node demo// node.js// 使用严格模式'use strict';let name = 'node.js';console.log(`hello ${name}!`);// 1. 模块// 1.1 定义模块function calculator(a,b){ return a + b;}function saying(){ console.log('汪汪汪...');}// 1.2 导出模块// 方式一:module.expor
2020-07-15 16:13:21
295
原创 webworker
// index.html<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script> </head> <body> <!-
2020-07-10 15:40:45
127
原创 less
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <!-- 1. 引入less,注意:less样式文件一定要在引入less.js前先引入。 --> <link rel="stylesheet" type="text/less" href="./index.less"/> <script src="
2020-06-24 21:50:13
163
原创 serviceWorker
// html<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <script src="index.js" type="text/javascript" charset="utf-8"></script> </body></htm
2020-06-17 16:48:24
408
原创 订阅发布模式DEMO(ts版)
const enum EVENT{ INIT, ADD, DELETE, UPDATE,};class Manager{ private static events:{[event:EVENT]:Array<(...args:any) => void>} = {}; // 一个对象,{事件:订阅者(数组)} private static ready = false; // 一个状态,可以控制订阅发布开始的时机 // 发布函数,只在内部使用 static notifyWa
2020-06-17 10:12:24
338
原创 indexedDB
个人博客,欢迎踩坑参考博客<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <button id='clear'>clear</button&...
2019-11-21 19:08:07
331
原创 react_redux项目
个人Blog,欢迎踩坑安装react和redux//创建react_app项目create-react-app my_react_app//安装reduxnpm install redux// 安装react-reduxnpm install --save react-redux//安装redux-thunknpm install --save redux-thunk创...
2019-11-09 21:58:28
222
原创 redux开发者工具 redux-devtools
谷歌浏览器redux开发者工具下载链接:https://pan.baidu.com/s/1ngY3WuDNF9-Rfdzzzq1wUg 提取码:j6lu在react+redux的项目下安装npm install --save-dev redux-devtools-extension在redux文件夹下的store.js中修改代码import {createStore,app...
2019-11-09 17:03:35
1112
原创 react、redux、react-redux、redux-thunk使用
Redux的学习安装:npm install --save redux在/src文件夹下创建一个redux文件夹创建一个reducers.js,内容如下:/** * 包含n个reducer函数的模块 */import {INCREMENT,DECREMENT} from './action-types';export function counter(state = 0,...
2019-11-09 16:41:50
415
原创 react-ui 库antd-mobile安装使用,按需加载
react-ui库:antd-mobileantd-mobile官网安装:npm install antd-mobile --save在index.html 引入以下内容在<head></head>标签中<!DOCTYPE html><html><head> <!-- set `maximum-scale` fo...
2019-11-07 16:28:24
908
原创 iframe高度自适应的问题
调整iframe高度问题先贴出完整代码父页面html<!DOCTYPE html><html lang="en"> <head> <title>Home</title> <meta name="viewport" content="width=device-width, initial-scale=1"&g...
2019-11-06 15:21:54
990
原创 vuex的使用
安装:npm install vuex --save在main.js中引入:import vuex from 'vuex'Vue.use(vuex);下载vuex的模块store模板,将整个store文件夹放在src文件夹下提取码:8kdzstore模板下载在main.js引入storeimport vuex from 'vuex'import stor...
2019-11-05 18:13:54
125
原创 Promise 异步处理
Promise:异步处理promise对象promise对象可以再原有的逻辑上添加异步操作let promise = new Promise( (resolve,reject) => { $.get(api,data,(res)=>{ if(res.status == 'ok'){ resolve(res.data);//成功时调用的函数 }else...
2019-10-22 11:18:39
95
原创 vscode 离线安装插件
vscode插件下载官网vscode插件下载找到需要下载的插件并下载下载完成,vsix文件将vsix文件复制到vscode所在目录的bin目录下点击 扩展图标 -> ···图标 -> 从vsix安装选择你要安装的插件(.vsix文件)进行安装重启vscode...
2019-10-09 11:15:05
1024
原创 svg基础
svg定义SVG 指可伸缩矢量图形svg文件svg文件的扩展:以svg结尾,保存为***.svg文件svg的引入:embed标签引入:<embed src='***.svg' type='image/svg+xml' />object标签引入:<object data='***.svg' type='image/svg+xml'></object...
2019-09-09 14:45:24
740
原创 php获取时间戳及对时间戳进行格式化处理
//获取当前的时间戳 echo "<h3>time()获取当前时间戳</h3>"; $timestamp = time(); echo $timestamp; //mysql获取当前时间的时间戳:unix_timestamp() //格式化时间戳 echo "<h3>date(日期格式,时间戳)格式化时间戳<...
2019-08-13 17:46:13
7362
2
原创 mysql查询语句
select基本使用语法:select [distinct] *[column1,column2,column3,...] from tablename;过滤重复的数据,用关键字:distinct*表示查询所有列,如果不需要所有列,只需将所查询的列的字段名写出select name,sex,salary from worker;select语句可以对列进行运算select name...
2019-08-13 17:44:39
270
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人