自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(150)
  • 收藏
  • 关注

原创 处理url上的参数,且页面不会发生刷新行为

【代码】处理url上的参数,且页面不会发生刷新行为。

2022-10-12 16:04:04 1036 1

原创 ts typeof 获取类型

【代码】ts typeof 获取类型。

2022-10-12 16:02:23 1250

原创 ts typeof 获取类型

【代码】ts typeof 获取类型。

2022-09-24 10:12:46 1031

原创 获取字符串字节大小

获取字符串字节大小

2022-06-09 17:28:42 884

原创 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 464

原创 字符串自然排序

// 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 333

原创 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 1018

原创 在原有的 api url 域名前还串上了一串域名

比如:https://localhost/baidu.com/api/...原因可能是写api时写成了:https:/baidu.com/api/...,https://baidu.com写成了https:/baidu.com,变成了取当前根目录下的路径

2022-05-05 15:59:30 315

原创 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 4026

原创 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 883

原创 高亮匹配文本

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 148

原创 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 297

原创 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 1562

原创 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 2063

原创 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 1119

原创 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 517

原创 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 270

原创 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 282

原创 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&lt

2021-12-20 10:32:28 232

原创 休眠sleep函数

export function sleep(mill: number) { return new Promise<void>((resolve) => setTimeout(resolve, mill));}

2021-12-20 10:19:15 557

原创 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 115

原创 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 969

原创 输入框识别按键,自动填充按键组合

<!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 368

原创 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 173

原创 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 92

原创 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 142

原创 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 275

原创 订阅发布模式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 281

原创 indexedDB

个人博客,欢迎踩坑参考博客<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> </head> <body> <button id='clear'>clear</button&...

2019-11-21 19:08:07 251

原创 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 182

原创 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 1036

原创 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 347

原创 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 762

原创 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 906

原创 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 97

原创 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 72

原创 vscode 离线安装插件

vscode插件下载官网vscode插件下载找到需要下载的插件并下载下载完成,vsix文件将vsix文件复制到vscode所在目录的bin目录下点击 扩展图标 -> ···图标 -> 从vsix安装选择你要安装的插件(.vsix文件)进行安装重启vscode...

2019-10-09 11:15:05 947

原创 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 594

原创 php获取时间戳及对时间戳进行格式化处理

//获取当前的时间戳 echo "<h3>time()获取当前时间戳</h3>"; $timestamp = time(); echo $timestamp; //mysql获取当前时间的时间戳:unix_timestamp() //格式化时间戳 echo "<h3>date(日期格式,时间戳)格式化时间戳&lt...

2019-08-13 17:46:13 7248 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 155

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除