自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

张营的技术博客

Keep Thinking, Keep Coding

  • 博客(270)
  • 资源 (11)
  • 收藏
  • 关注

原创 Tauri 入门教程

Tauri:构建跨平台的快速、安全、前端隔离应用。Tauri 是一个相对较新的框架,允许您利用基本的 Web 技术和Rust编程语言快速创建跨平台应用程序。Tauri 基于 Rust 构建,在设计上具有安全性和高性能,与任何前端框架兼容,并允许您为所有主要桌面平台(包括macOS、Windows和Linux操作系统)创建可执行应用程序。每个 Tauri 应用程序都包含一个核心进程,作为应用程序的入口点,并且是唯一可以完全访问操作系统的组件。

2022-11-28 08:00:00 2358

原创 【实时语音转文本】PC端实时语音转文本(麦克风外音&系统内部音源)

PC端实时语音转文本,可以通过麦克风外部音源输入,也可以使用系统内部音源作为输入音源,使用场景可以用在语音转写工作,解放双手,也可以使用在更高端的AI领域做一些好玩的工具。

2022-11-18 00:31:37 1539

原创 【浏览器直播源抓取】浏览器抓取真实直播源地址(2022/11/16)

纯前端浏览器抓取直播源,并解析加密参数和方法等,学习下浏览器最重要的调试技巧,前端破解之道。

2022-11-16 23:59:32 3002 1

原创 【新冠疫苗预约】Fiddler抓包新冠疫苗预约接口及脚本实现

文章目录1. 工具2. 接口抓包3. 参数解密过程4. 解密方法整理重构5. 脚本实现6. 总结1. 工具Fiddler 抓包工具手机(与PC统一局域网)Chrome浏览器Postman2. 接口抓包打开fiddler软件,在Tools > Options 按以下设置:设置连接信息,注意这里的端口是后面手机连接要用的:在cmd命令行查看PC的IP地址:手机连接到和PC相同的网络,并设置代理:然后接下来从Fiddler里就可以抓取到手机端的请求了,预约入口这里使用【深圳

2021-06-12 23:26:21 10230 19

原创 Jenkins & Gitee 实现持续集成CI/CD工具【免费、推荐】

文章目录1. Jenkins安装Gitee插件2. 插件配置3. 新建构建任务4. Vue项目构建脚本1. Jenkins安装Gitee插件Jenkins安装Gitee插件:安装完记得重启Jenkins。2. 插件配置前往 Jenkins -> 系统管理 -> 系统配置 -> Gitee配置 -> Gitee 链接在 链接名 中输入 Gitee 或者你想要的名字Gitee 域名 URL 中输入Gitee完整 URL地址: https://gitee.co

2021-04-12 22:36:02 3416 17

原创 【请收藏】写博客必备工具总结篇

文章目录1. Markdown编辑器2. Markdown表格生成器3. 代码高亮4. 生成代码截图5. 画图工具6. 截图工具7. 录制Gif动画8. 图片存储9. 多平台发布工具1. Markdown编辑器在变成界写文章当然首选Markdown编辑器了,相比富文本编辑器界面更加简洁,不要花里胡哨,GitHub上的开源项目都是用md格式的文档,这里推荐一个工具:工具:Typora官方地址:www.typora.io/特点:免费,Windows/Mac,可导出PDF/Word/HTML2

2021-03-27 09:51:44 5562 21

原创 【斗鱼直播源】浏览器抓取真实直播源地址(纯前端JS & PHP解析源码)

浏览器抓取真实直播源地址0. 前言1. 直播源查找2. 浏览器请求过程分析及思路3. 模拟实现4. 整合播放器5. 全部源码6. 【附】真实源地址网上搜索各种平台的直播源地址都是满天飞,但是经常会有失效的时候,因为官方也会定期的升级系统修改各种参数或链接让直播源不能永久,所以敝人一直崇尚的是授人以鱼不如授人以渔,与其给直播源别人,不如教大家如何去爬取直播源,就算失效了也不怕。0. 前言继虎牙直播后,网上说斗鱼的直播源是最难抓的,哦?在抓取之前,需要了解视频直播源的分类和区别,可以自行了解hls,f

2021-01-10 17:00:50 22242 23

原创 【虎牙直播源】浏览器抓取真实直播源地址(纯前端JS解析源码)

浏览器抓取真实直播源地址(纯前端JS解析源码)网上搜索各种平台的直播源地址都是满天飞,但是经常会有失效的时候,因为官方也会定期的升级系统修改各种参数或链接让直播源不能永久,所以敝人一直崇尚的是 授人以鱼不如授人以渔,与其给直播源别人,不如教大家如何去爬取直播源,就算失效了也不怕。0. 前言本人业余时间喜欢用虎牙看直播,所以第一个便是想到如何抓取虎牙的直播源。在抓取之前,需要了解视频直播源的分类和区别,可以自行了解hls,flv,m3u8等知识。Tips: 本教程只是教大家如何利用前端调试技巧和

2021-01-06 23:11:00 16146 12

原创 ThinkPHP6项目基操目录

前言ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,更注重易用性。遵循Apache2开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发布/销售。ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一

2020-12-13 14:41:02 13164 21

原创 JS 中如何优雅的使用多层嵌套属性而不会发生报错

JS中使用多层嵌套属性时如何优雅的判断是否存在防止程序报错,小伙伴看过来~

2022-11-24 23:47:32 82

原创 无需密码自己卸载深信服EDR软件

彻底卸载深信服EDR

2022-06-06 20:40:27 24936 16

原创 VSCode 代码风格统一设置eslint + stylelint

安装依赖"babel-eslint": "^10.0.1","eslint": "^5.16.0","eslint-plugin-vue": "^5.0.0","stylelint": "^13.13.1","stylelint-config-standard": "^22.0.0"配置eslint配置以下主要是考虑到代码格式化及可自动修复的常用配置,具体配置可查看官网配置:module.exports = { root: true, env: { browser: tr

2021-06-10 14:16:11 644

原创 618来了还愁没钱买东西?五分钟教你如何白嫖!

文章目录1️⃣ 效果展示2️⃣ 准备工作2.1 安装SDK2.2 使用ADB操作手机3️⃣ 抢红包实现3.1 NodeJS版3.2 Python版3.3 Java版4️⃣ 总结今年的618比以往活动来的更加早,不少商家都提前了活动,导致剁手党们开始蠢蠢欲动了,每天都守着红包雨,开始猛戳手机屏幕,就算手不累也担心下屏幕吧(不知道有没有买碎屏险,哈哈???? ),作为一枚程序员,绝对不能允许重复的动作,这不自动化抢红包程序献上给各位剁手党们。????1️⃣ 效果展示因为考虑到版权和广告的关系没有用某宝抢

2021-05-31 08:59:34 4147 42

原创 【全网最全】一文搞定 Linux 压缩、解压哪些事儿

一文搞定 Linux 压缩、解压哪些事儿Linux 常用的解压和压缩命令如下:1、.tar# 解包tar xvf FileName.tar# 打包tar cvf FileName.tar DirName# ???? 注:tar是打包,不是压缩!2、.gz# 解压1gunzip FileName.gz# 解压2gzip -d FileName.gz# 压缩gzip FileName3、.tar.gz 和 .tgz# 解压tar zxvf FileName.tar.gz

2021-05-28 10:59:09 2393 24

原创 跳坑成功,手摸手带你使用PHP连接Oracle数据库

文章目录1. Linux版1.1 安装oracle客户端1.2 安装oci8扩展1.3 安装pdo_oci扩展1.4 测试PHP连接Oracle数据库2. Windows版2.1 安装OCI82.2 安装Oracle Client客户端2.3 测试PHP连接Oracle数据库3. 总结看起来挺奇怪的,为啥是PHP和Oracle呢,一般不是PHP和Mysql吗,他们俩才是黄金搭档啊????,一切都源于免费啊~,Oracle数据库是免费薅来的,俗话说不用白不用????,既然有这个资源就像怎么利用起来,然后就开

2021-05-27 08:37:46 1697 24

原创 CentOS7 安装 Nginx & PHP

安装 Nginx# Nginx没有内置在默认的CentOS repositories, 我们先安装EPEL repositoryyum install epel-release -y# 安装 Nginxyum install nginx -y# 启动nginx和让nginx在linux启动时自动运行systemctl start nginxsystemctl enable nginx安装 PHP v7.4# 安装额外包括 PHP v7.4 的 CentOS repowget http:

2021-05-18 22:01:47 353 7

原创 httpd Server not started: (13)Permission denied: make_sock: could not bind to address [::]:88

PHP 配置文件设置监听端口出现报错:httpd Server not started: (13)Permission denied: make_sock: could not bind to address [::]:88配置文件:/etc/httpd/conf/httpd.conf由于缺少SELinux权限,默认情况下,SELinux仅允许apache / httpd绑定到以下端口:80, 81, 443, 488, 8008, 8009, 8443, 9000因此,结合我httpd.co

2021-05-17 22:09:03 115

原创 【ES11(2020)】可选链操作符和空值合并运算符

可选链操作符 Optional chaining可选链操作符( ?. )允许读取位于连接对象链深处的属性的值,而不必明确验证链中的每个引用是否有效。?.操作符的功能类似于.链式操作符,不同之处在于,在引用为空(nullish) (null或者 undefined) 的情况下不会引起错误,该表达式短路返回值是 undefined。与函数调用一起使用时,如果给定的函数不存在,则返回 undefined。当尝试访问可能不存在的对象属性时,可选链操作符将会使表达式更短、更简明。在探索一个对象的内容时,如果不能确

2021-05-13 09:24:42 574 2

原创 【ES11(2020)】全局属性 globalThis

全局属性 globalThis 包含全局的this 值,类似于全局对象(global object)。function canMakeHTTPRequest() { return typeof globalThis.XMLHttpRequest === 'function';}console.log(canMakeHTTPRequest()); // true在以前,从不同的 JavaScript 环境中获取全局对象需要不同的语句。在 Web 中,可以通过 window、self或者 fra

2021-05-12 12:03:44 233 1

原创 【ES11(2020)】Promise 扩展 allSettled()

我们都知道 Promise.all() 具有并发执行异步任务的能力。但它的最大问题就是如果其中某个任务出现异常(reject),所有任务都会挂掉,Promise直接进入reject 状态。但是,假如几个异步任务都是互不关联的,彼此结果不影响, Promise.all() 就不能使用了,因为如果一个任务失败了,其他的任务也会失败。Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的

2021-05-12 11:53:08 117

原创 【ES11(2020)】新增数据类型 BigInt

在 ES10 增加了新的原始数据类型:BigInt,表示一个任意精度的整数,可以表示超长数据,可以超出2的53次方。Js 中 Number类型只能安全的表示-(2^53-1) 至 2^53-1范的值。可以用在一个整数字面量后面加 n的方式定义一个 BigInt ,如:10n,或者调用函数BigInt()。const theBiggestInt = 9007199254740991n;const alsoHuge = BigInt(9007199254740991);// 900719925474

2021-05-12 11:33:26 401

原创 【ES11(2020)】Dynamic Import 动态引入

按需import提案几年前就已提出,如今终于能进入ES正式规范。这里个人理解成“按需”更为贴切。现代前端打包资源越来越大,打包成几M的JS资源已成常态,而往往前端应用初始化时根本不需要全量加载逻辑资源,为了首屏渲染速度更快,很多时候都是按需加载,比如懒加载图片等。而这些按需执行逻辑资源都体现在某一个事件回调中去加载。// 点击按钮才去加载ajax模块const oBtn = document.querySelector('#btn')oBtn.addEventListener('click', ()

2021-05-12 11:07:06 472

原创 【ES11(2020)】String 扩展 String.prototype.matchAll()

matchAll()方法返回一个包含所有匹配正则表达式的结果及分组捕获组的迭代器。const regexp = /t(e)(st(\d?))/g;const str = 'test1test2';const array = [...str.matchAll(regexp)];console.log(array[0]);// ["test1", "e", "st1", "1"]console.log(array[1]);// ["test2", "e", "st2", "2"]语法:

2021-05-12 10:52:09 94

原创 【ES10(2019)】Symbol 扩展 Symbol.prototype.description

我们知道,Symbol 的描述只被存储在内部的 Description ,没有直接对外暴露,我们只有调用 Symbol 的toString()时才可以读取这个属性:const name = Symbol('es')console.log(name.toString()) // Symbol(es)console.log(name) // Symbol(es)console.log(name === 'Symbol(es)') // falseconsole.log(name.toString()

2021-05-12 10:45:20 115

原创 【ES10(2019)】JSON扩展 superset / stringify() 增强能力

JSON superset什么是 JSON 超集?,简而言之就是让 ECMAScript 兼容所有JSON支持的文本。 ECMAScript 曾在标准 JSON.parse 部分阐明 JSON 确为其一个子集,但由于 JSON 内容可以正常包含 U+2028行分隔符 与 U+2029段分隔符,而ECMAScript 却不行。JSON.stringify() 增强能力JSON.stringify在 ES10 修复了对于一些超出范围的 Unicode展示错误的问题。因为 JSON 都是被编码成 UTF-

2021-05-12 10:38:23 271

原创 【ES10(2019)】可选的Catch Binding

在ES10之前我们是这样捕获异常的:try { // tryCode} catch (err) { // catchCode}这里的err是必须的参数,在ES10可以省略这个参数:try { console.log('Foobar') throw new Error()} catch { console.error('Bar')}如果不需要处理错误信息,可以直接省略这个参数,如验证参数是否为json格式,我们只需要返回true或false,并不关心

2021-05-12 10:29:16 101

原创 【ES10(2019)】Array扩展 flat / flatMap

Array.prototype.flat()flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。const arr1 = [0, 1, 2, [3, 4]];console.log(arr1.flat());// [0, 1, 2, 3, 4]const arr2 = [0, 1, 2, [[[3, 4]]]];console.log(arr2.flat(2));// [0, 1, 2, [3, 4]]语法:var newArra

2021-05-12 09:59:50 592 1

原创 【ES10(2019)】String 扩展 trimStart / trimEnd

String.prototype.trimStart()trimStart()方法从字符串的开头删除空格,移除原字符串左端的连续空白符并返回一个新字符串,并不会直接修改原字符串本身。trimLeft()是此方法的别名。const greeting = ' Hello world! ';console.log(greeting);// " Hello world! "console.log(greeting.trimStart());// "Hello world! "

2021-05-12 09:48:35 126

原创 【ES10(2019)】Object.fromEntries()

Object.fromEntries() 方法把键值对列表转换为一个对象。const entries = new Map([ ['foo', 'bar'], ['baz', 42]]);const obj = Object.fromEntries(entries);console.log(obj); // {"foo":"bar","baz":42}类似 Array 、 Map 或者其它实现了可迭代协议的可迭代对象都可以使用。// Map 转换为 Objectconst map =

2021-05-12 09:42:42 67

原创 【ES9(2018)】String 扩展 标签模板里字符串转义

放松对标签模板里字符串转义的限制, 遇到不合法的字符串转义返回undefined,并且从raw上可获取原字符串。ES9开始,模板字符串允许嵌套支持常见转义序列,移除对ECMAScript在带标签的模版字符串中转义序列的语法限制。带标签的模板字符串:const foo = (a, b, c, d) => { console.log(a) console.log(b) console.log(c) console.log(d)}const name = 'xia

2021-05-11 13:54:09 159

原创 【ES9(2018)】Promise.prototype.finally()

指定不管最后状态如何都会执行的回调函数。Promise.prototype.finally() 方法返回一个Promise,在promise执行结束时,无论结果是fulfilled或者是rejected,在执行then()和catch()后,都会执行finally指定的回调函数。这为指定执行完promise后,无论结果是fulfilled还是rejected都需要执行的代码提供了一种方式,避免同样的语句需要在then()和catch()中各写一次的情况。new Promise((resolve, rej

2021-05-11 13:45:02 70

原创 【ES9(2018)】Object Rest & Spread

前面讲到 function 的 rest剩余参数和spread扩展运算符,ES9中新增Object的 Rest & Spread 方法:const input = { a: 1, b: 2}const output = { ...input, c: 3}console.log(output) // {a: 1, b: 2, c: 3}这块代码展示了 spread 语法,可以把 input 对象的数据都拓展到 output 对象,这个功能很实用,比如在vue中我们经常

2021-05-11 11:52:09 105 1

原创 【ES9(2018)】RegExp扩展

文章目录1. dotAll 模式2. 具名组匹配3. 后行断言1. dotAll 模式正则表达式中,点(.)是一个特殊字符,代表任意的单个字符,但是有两个例外。一个是四个字节的 UTF-16 字符,这个可以用u修饰符解决;另一个是行终止符(line terminator character)。U+000A 换行符(\n)U+000D 回车符(\r)U+2028 行分隔符(line separator)U+2029 段分隔符(paragraph separator)console.log(/

2021-05-11 11:46:10 98 2

原创 【ES9(2018)】for await...of

for...of循环用于遍历同步的Iterator接口。新引入的for await...of循环,则是用于遍历异步的Iterator接口。先来看下for...of的效果:function Gen(time) { return new Promise(function(resolve, reject) { setTimeout(function() { resolve(time) }, time) })}function tes

2021-05-11 11:34:55 108

原创 【ES8(2017)】尾逗号 Trailing commas

ES8 允许函数的最后一个参数有尾逗号(Trailing comma)。此前,函数定义和调用时,都不允许最后一个参数后面出现逗号。function aa( param1, param2){}aa( 'foo', 'bar')上面代码中,如果在param2或bar后面加一个逗号,ES8之前就会报错。如果像上面这样,将参数写成多行(即每个参数占据一行),以后修改代码的时候,想为函数aa添加第三个参数,或者调整参数的次序,就势必要在原来最后一个参数后面添加一个逗号。这对于版本管理系

2021-05-11 10:23:32 2728

原创 【ES8(2017)】String扩展 padStart / padEnd

文章目录1. String.prototype.padStart()2. String.prototype.padEnd()1. String.prototype.padStart()把指定字符串填充到字符串头部,返回新字符串。语法:str.padStart(targetLength [, padString])const str = 'hello'console.log(str.padStart(8, 'x')) // xxxhelloconsole.log(str.padEnd(8, 'y

2021-05-11 10:09:09 73

原创 【ES8(2017)】Object 扩展 values() / entries() / getOwnPropertyDescriptors()

文章目录Object.values()Object.entries()Object.getOwnPropertyDescriptors()ES8之前获取对象的每个属性的value值:const obj = { name: 'xiaoming', course: 'es'}console.log(Object.keys(obj))const res = Object.keys(obj).map(key => obj[key])console.log(res)// ["xia

2021-05-11 09:38:09 81

原创 【ES8(2017)】async / await

async 和 await 是一种更加优雅的异步编程解决方案,是Promise 的拓展。在我们处理异步的时候,比起回调函数,Promise的then方法会显得较为简洁和清晰,但是在处理多个彼此之间相互依赖的请求的时候,就会显的有些繁琐。这时候,用async/await更加优雅。我们知道 JavaScript 是单线程的,使用 Promise 之后可以让我们书写异步操作更加简单,而 async 是让我们写起 Promise 像同步操作。基本用法前面添加了async的函数在执行后都会自动返回一个Prom

2021-05-10 17:28:53 47

原创 【ES7(2016)】幂运算符**

如果不使用任何函数,如何实现一个数的求幂运算?function pow(x, y) { let res = 1 for (let i = 0; i < y; i++) { res *= x } return res}console.log(pow(2, 10))// 1024除了自己封装函数来实现,也可是使用 Math.pow() 来完成。console.log(Math.pow(2, 10)) // 1024在 ES7 可以这样写

2021-05-10 16:53:53 70

原创 【ES7(2016)】Array.prototype.includes()

在 ES7 之前想判断数组中是否包含一个元素,基本可以这样写:let array1 = [1,2,3,4,5]console.log(array1.find(function(item) { return item === 2}))// 或者console.log(array1.filter(function(item) { return item === 2}).length > 0)ES7引入的Array.prototype.includes()方法用来判断一个数

2021-05-10 16:50:41 100

抢购haiwei.rar

2021抢购华为mate40, python版,亲测可用

2021-02-24

php_redis-5.3.2rc2-7.4-nts-vc15-x64.zip

php redis扩展,可先查看自己的PHP版本,此扩展插件对应nts vc15 64位,php7.4版本

2020-12-14

rdm-2020.6.0.0

RDM为您提供了一个易于使用的 GUI,可以访问您的 Redis 数据库并执行一些基本操作: 将键视为树 CRUD 键 在树状视图中分析整个 DB 或选定的命名空间的内存使用情况(需要 redis 服务器 >= 4.0 列出已连接的客户端、发布/订阅频道和慢查询日志命令 通过 shell 执行命令 RDM 允许执行批量操作,简化了开发人员的日常工作 在数据库之间复制数据(将数据从生产环境复制到开发环境进行调试,或将项目迁移到另一个云提供商) 从 RDB 文件中导入数据 - 您可以轻松地将大型 rdb 文件中的数据分到多个较小的 redis 服务器上,或者只导入数据的子集 为多个键设置 TT

2020-12-14

Chrome 插件 (含安装说明).zip

Chrome插件:包含手势、截图、代理、React、Redux、Vimium、Vue、web前端助手、广告终结者、翻译

2020-06-21

h5打开app源码

这是h5打开app源码,包含IOS和安卓平台,用到的技术有Universal Links,Intent,URL Scheme,详细介绍查看博客http://blog.csdn.net/zy1281539626/article/details/79203853

2018-01-30

jsonview浏览器插件格式化网页json代码

jsonview浏览器插件,格式化网页json代码

2017-06-16

jquery星星评价插件

jquery星星评价插件

2017-03-14

省市区级联下拉

省市区级联下拉

2017-03-10

distpicker省市区级联

方便快捷的省市区级联选择插件,方便设置,方便读取

2017-02-22

图片上传预览插件

简洁的图片上传预览插件

2017-02-20

wangEditor编辑器

基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费 与国产编辑器 百度ueditor 和 kindeditor 相比,它轻量、易用、UI设计精致漂亮。 与国外编辑器 bootstrap-wysiwyg 和 simditor 相比,它文档易读、交流方便,更接地气。 它还会根据使用者的反馈不断完善,未来将支持移动版。

2017-02-20

空空如也

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

TA关注的人

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