自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mqttws.js

mqttws31 是一个 MQTT(Message Queue Telemetry Transport)客户端库,可以用于在浏览器中实现与 MQTT 代理服务器的通信mqttws31 提供了一个基于 WebSocket 协议的 MQTT 客户端实现,可以将 MQTT 协议封装在 WebSocket 协议之上,使得客户端可以通过浏览器向 MQTT 代理服务器发送和接收消息。

2023-11-21 17:48:56 618

原创 MQTT.js

mqtt.js是一个开源的MQTT协议的客户端库,使用 JavaScript 编写,主要用于 Node.js 和 浏览器环境中。是目前 JavaScript 生态中使用最为广泛的 MQTT 客户端库。MQTT 是一种基于发布/订阅模式的轻量级物联网消息传输协议,可以用极少的代码和带宽为联网设备提供实时可靠的消息服务。

2023-11-21 17:10:54 996

原创 前端文件下载-ajax下载完毕回调

自己封装的问题很多会考虑不周,比如登录超时提示等等;兼容性问题 XMLHttpRequest 以及 Blob这些方法的支持问题。缺点: 性能影响(待定,大文件应该能体现);格式,后端返回的格式假如不固定该如何处理还没想好;优点: 下载可控,可以随时停止下载,修改文件名,显示下载进度,提示等待以及回调 等等。文件导出,导出的时间段内,希望可以弹出加载中,一直到后台返回文件。通过下载文件流,前端生成文件。

2023-03-15 09:20:56 312 1

原创 day1——二分查找+移除元素

算法练习:二分查找与移除元素

2023-03-02 10:37:22 340

原创 微信小程序基础

详细的使⽤,可以查看官⽹data-*使用 name 属性,作为模板的名字。然后在内定义代码片段,如事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理。事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如 id, dataset, touches。

2022-11-13 23:38:58 456

原创 nodejs基础一(REPL环境,模块化,异常处理,url,queryString,path,util)

node1. nodejs简介2. REPL环境3. 模块化3.1 package.json3.2 CommonJS模块化特点modulerequire3.3 ECMAScript 模块exportimport3.4 核心模块4.异常处理4.1 try-catch4.2 回调函数4.3 EventEmitter接口的error事件5. url模块5.1 url.parse()5.2 url.format()5.3 url.resolve(from,to)5.4 url.hash5.5 url.host5.6

2022-07-07 15:26:57 954

原创 CSS grid布局

grid布局

2021-12-04 21:13:04 403 1

原创 圣杯布局和双飞翼布局

圣杯布局和双飞翼布局的区别和他们的实现方式

2021-11-22 19:12:04 414

原创 node.js基础五(Egg.js框架)

本文讲述关于nodejs的一个广泛应用的框架egg.js的基础知识

2021-11-22 14:49:40 1962

原创 nodejs基础四(express框架)

express框架手动创建工程核心代码路由定义路由参数response方法中间件cookie和sessionexpress是基于 Node.js 平台,快速、开放、极简的 Web 开发框架手动创建工程mkdir 文件名 创建工程文件夹cd 文件名 定位到工程文件夹npm init -y 初始化项目(package.json)npm i -S express 安装express目录结构:node_modules▽publicuser.html▽routersuser.js

2021-11-18 15:54:28 737

原创 重绘(repaint)和回流(reflow)

重绘和回流浏览器渲染(页面加载)的过程DOM 树 和 渲染树 的区别:回流触发reflow重绘重绘和回流(重排)的区别和关系减少回流浏览器渲染(页面加载)的过程解析 HTML 构建 DOM(DOM 树),并行请求 css/image/jsCSS 文件下载完成,开始构建 CSSOM(CSS 树)CSSOM 构建结束后,和 DOM 一起生成渲染树(render 树就是根据 可视化节点 和 css 样式表 结合诞生出来的树)布局(Layout):计算出每个节点在屏幕中的位置显示(Painting):

2021-11-17 20:04:43 229

原创 JavaScript继承

继承原型链继承特点缺点构造函数继承特点缺点原型链+借用构造函数组合继承特点缺点ES6中class继承特点继承有助于实现代码的复用。一个对象通过继承另一个对象,就能拥有另一个对象的所有属性和方法。原型链继承子类型的原型为父类型的一个实例对象 //父类型 function Person(name, age) { this.name = name, this.age = age, this.play = [1, 2, 3] this.se

2021-11-16 20:04:57 896

原创 从浏览器输入URL到渲染完整个页面的过程

从浏览器输入URL到渲染完整个页面的过程1.获取IP地址2.TCP/IP三次握手建立连接3.浏览器向web服务器发送http请求4.浏览器渲染5.四次挥手断开连接1.获取IP地址在应用层通过DNS将域名解析成IP地址。2.TCP/IP三次握手建立连接知道了服务器的IP地址后,浏览器利用tcp协议通过三次握手与服务器建立连接。建立连接需要三个过程(三次握手):客户机向服务器发送一个建立连接的请求(客户机向服务器拨打电话)服务器接到请求后发送同意连接的信号(服务器接听电话)主机接到同意连接的信号

2021-11-08 19:58:49 2181

原创 web前端存储方式

web前端存储方式cookie本地存储localstorage本地存储sessionstorage应用程序缓存Application Cachecookiecookie是纯文本,没有可执行代码。存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据,或者某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的co

2021-11-08 19:11:17 272

原创 JavaScript中call(),bind(),apply()方法

call()、apply()、bind() 都是用来重定义 this 这个对象的

2021-11-08 16:21:58 83

转载 HTTP与HTTPS的区别和通信过程

HTTP和HTTPSHTTP与HTTPS的区别HTTP的工作过程HTTPS的实现原理HTTPS的通信过程HTTP与HTTPS的区别安全性上,HTTPS是安全超文本协议,在HTTP基础上有更强的安全性。简单来说,HTTPS是使用TLS/SSL加密的HTTP协议申请证书上,HTTPS需要使用ca申请证书传输协议上, HTTP是超文本传输协议,明文传输;HTTPS是具有安全性的 SSL 加密传输协议连接方式与端口上,http的连接简单,是无状态的,端口是 80; https 在http的基础上使用了ss

2021-11-08 15:06:56 340

原创 跨域与同源策略

跨域与同源策略url基础概念:url为统一资源定位符,俗称网址,用来标识某个资源在网络中的唯一位置。url组成:方案或协议;主机或IP地址;端口号;路径;查询参数;片段。例: http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument方案或协议:http:// 告诉浏览器使用哪种协议,大多数浏览器资源使用http协议或其安全版本HTTPS协议,其他协议 mailt

2021-11-08 14:49:53 150

转载 VueCLI3如何更改安装时的包管理器为yarn或npm

VueCLI3如何更改安装时的包管理器为yarn或npm在执行 vue create project 后如果显示如下 npm run serve 则表示你使用的是npm创建的项目。如果显示如下 yarn serve 则表示此项目为yarn创建。那如何切换包管理器呢?在VueCLI3官网有如下一段描述:注意最后一句,明确的说明了包管理器和淘宝npm镜像源会存入 ~/.vuerc此文件如果是windows环境,则存在了 C:/user/administrator/ 下:打开此文件:只

2021-11-03 16:02:42 468

原创 哈哈哈哈哈

1

2021-11-02 23:02:42 336

原创 算法-哈希表

哈希表哈希表基础有效的字母异位词哈希表基础哈希表其实就是一个数组。哈希表的关键码就是数组的索引下标,通过数组下标直接访问数组元素。哈希表可以解决的问题:一般哈希表用于快速判断一个元素是否出现在某个集合中。例如要查询一个名字是否在这所学校里。要枚举的话时间复杂度是O(n),但如果使用哈希表的话, 只需要O(1) 就可以做到。我们只需要初始化把这所学校里学生的名字都存在哈希表里,在查询的时候通过索引直接就可以知道这位同学在不在这所学校里了。将学生姓名映射到哈希表上就涉及到了哈希函数。哈希函数

2021-11-01 21:59:17 338

原创 算法-链表

链表链表理论基础链表的类型单链表双链表循环链表链表的存储方式链表的操作删除节点添加节点数组和链表移除链表元素链表理论基础链表是一种通过指针串联在一起的线性结构,每个节点由两部分组成,一个是数据域,一个是指针域(存放指向下一个节点的指针)。最后一个节点的指针指向null(空指针)。链接的入口点称为列表的头结点也就是head。链表的类型单链表单链表中的节点只能指向节点的下一个节点。双链表每一个节点有两个指针域,一个指向下一个节点,一个指向上一个节点。双链表 既可以向前查询也可以向后查询。

2021-11-01 21:28:46 497

原创 HTTP状态码

HTTP状态码(响应码)消息响应成功响应重定向客户端错误服务器端错误HTTP状态码用来表明HTTP请求是否已经成功完成。HTTP响应类型分为五类:消息响应,成功响应,重定向,客户端错误,服务器端错误消息响应100 继续客户端应当继续发送请求.这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝.客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应.服务器必须在请求完成后向客户端发送一个最终响应.101 切换协议成功响应200 OK

2021-10-28 22:49:05 118

原创 原生AJAX和JQuery的AJAX

AJAXHttpRequestAJAX原理AJAX的优缺点XMLHttpRequestHTTP报文请求报文Request响应报文Response响应头类型状态码statusfile协议无法实现跨域在JS中使用AJAXJQuery 中使用AJAXjQuery.ajax()$.get()$.getJSON()$.getScript()$.post()ajaxComplete(callback)ajaxError(callback)ajaxSend(callback)ajaxStart(callback)ajax

2021-10-28 22:47:46 776

原创 vue基础九(打包)

打包vue脚手架中打包vue打包底层操作vue脚手架中打包进入vue项目目录,在终端中输入打包命令 npm run build打包完成后,在vue项目目录中生成dist文件夹,dist文件夹中包含static文件夹(放置静态文件夹css,js ,img, fonts),favicon.ico和index.html文件在浏览器中打开index.html文件,即为完整项目。vue打包底层操作创建vue文件夹进入文件,终端输入命令 ,初始化文件npm init -y文件夹中出现pac

2021-10-28 22:46:02 1425

原创 vue基础八(Element UI)

Element UI安装引入使用安装包管理器方式安装npm install element-plus --save或者从浏览器直接引入引入若整个项目的所有页面都需要使用element ui组件,则可以在main.js中进行引入main.jsimport { createApp } from 'vue'import ElementPlus from 'element-plus'createApp(App).use(ElementPlus).mount('#app')使用可以直接引入

2021-10-28 22:44:07 109

原创 vue基础七(Less)

Less安装注释导入变量(Variables)混合(Mixins)嵌套(Nesting)运算转义(Escaping)函数(Functions)命名空间和访问符映射作用域sass,less和stylussass变量的表示变量的赋值缩进的问题if条件判断的问题都支持嵌套Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。安装将less安装为开发依赖 npm i less --save-dev注释/* 一个块注释 * style comment! */

2021-10-28 20:05:39 1353

原创 vue基础六(AXIOS)

AXIOS特点axios和jQuery-AJAX安装axiosdemoAXIOS实例响应结构创建实例优先顺序拦截器transformer和interceptor的区别别名方法并发取消请求Axios基于promise的HTTP库,可以用在浏览器和node.js中。特点从浏览器中创建 XMLHttpRequests(客户端)从 node.js 创建 http 请求(服务端)支持 Promise API拦截请求和响应转换请求数据和响应数据取消请求自动转换 JSON 数据客户端支持防御 XSR

2021-10-28 20:03:47 421

原创 vue基础五(状态管理)

状态管理状态管理模式使用vuex的情况简单的store模式单一状态树vuex安装与使用安装vuex初始化将store挂载到当前项目的vue实例中在组件中使用vuexStategettersmutationsActionmodule命名空间vuex是一个专门为Vue.js应用程序开发的状态管理模式。采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vue为这些被多个组件频繁使用的值提供了一个统一管理的工具——VueX。在具有VueX的Vue项目中,我们只需要把这

2021-10-28 20:02:18 166

原创 vue基础四(路由)

路由起步使用路由动态路由匹配(传参)响应路由参数的变化匹配所有路径匹配优先级嵌套路由编程式导航$router.push()$router.replace()$router.go(n)命名路由命名视图重定向别名路由组件传参History 模式$router 和 $route守卫全局前置守卫全局解析守卫全局后置钩子路由独享的守卫组件内的守卫完整的导航解析流程路由元信息过渡效果滚动行为使用 Vue.js ,可以通过组合组件来组成应用程序,把 Vue Router 添加进来,要将组件 (components)

2021-10-28 20:01:10 1788

原创 vue基础三(混入,自定义指令,函数,JSX,自定义插件)

vue3混入选项和并全局mixin自定义指令指令钩子函数参数指令参数动态指令参数指令值渲染函数setup() 函数ref() 函数reactive函数JSX自定义插件混入Mixin 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个 mixin 对象可以包含任意组件选项。当组件使用 mixin 对象时,所有 mixin 对象的选项将被“混合”进入该组件本身的选项。var obj = { data:function(){ return {

2021-10-28 19:59:09 1593

原创 vue基础二(组件)

组件组件组件的复用组件的注册组件名放置限制通过 Prop 向子组件传递数据单向数据流poro的验证属性继承自定义事件插槽普通插槽具名插槽作用域插槽默认插槽解构插槽动态插槽动态组件Provide / Inject组件在项目中,很多时候我们需要在不同的模块使用相同的一个块,而这个块的代码时相同的,这时候会造成代码冗余,我们可以通过封装组件的方式,实现代码的复用。在components文件夹中创建子组件引入父组件中创建子组件 MyCount<template> <h1>

2021-10-22 16:10:51 541

原创 vue基础一(模板语法,事件绑定,表单输入绑定,计算属性,侦听器)

vuevue简介mvvm模式组件化安装和使用在HTML中在node中为什么要把data对象变成函数并return关于vue3的根节点生命周期vue简介vue是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。Vue 也完全能够为复杂的单页应用提供驱动。mvvm模式MVVM包括view视图层、model数据层、viewmodel层。各部分通信都是双向的。采用双向数据绑定,View的变动,自动反映在

2021-10-19 18:56:48 1328

原创 PC网页特效

网页特效元素偏移量offset元素偏移量offsetoffset就是偏移量,使用offset系列相关属性可以动态的得到该元素的位置(偏移),大小等。可以获取元素距离带有定位父元素的位置获取元素自身的大小(宽度和高度)注意:返回值不带单位offset系列常用属性:element.offsetParent 返回作为该元素带有定位的父级元素,若父级元素没有定位则返回bodyelement.offsetTopelement.offsetLeftelement.offsetW

2021-10-14 16:56:57 80

原创 ES6语法 3(class,迭代器,promise,generator,async/await,proxy/reflect)

es61.Class类1.1构造函数1.2实例属性和方法1.3原型属性和方法1.4静态属性和方法1.5继承2.迭代器3.promise3.1 原型方法4.Generator4.1特点4.2 作用5.Async5.1特点6.proxy/reflect1.Class类es6中引入类的概念,作为对象的模板,使对象原型的写法更清晰更像面向对象编程。1.1构造函数constructor 构造函数,为类的默认方法;通过new命令生成对象实例时,会自动调用该方法。一个类中必须有constructor方法,如果

2021-10-13 19:58:36 656

原创 ES6语法 2(函数,对象,数组功能新增,for of ,symbol,set,map集合)

es61.函数功能新增1.1参数解构1.2 rest参数1.3 箭头函数 ()=>{}2.对象简写3.对象功能新增4.数组功能新增5.for-of(可迭代对象)6.Symbol7.Set集合8.Map集合1.函数功能新增1.1参数解构 function add(a,b){ console.log(a+b); } add(1,2); //参数为数组 function add([a,b]){ console.log(a+b); } var arr=[1,2];

2021-10-13 18:32:17 390

原创 ES6语法 1(let,const,解构,模板字符串,扩展运算符)

es61.变量声明(let)2.常量声明(const)3.解构3.1 数组解构3.2 对象解构3.3 字符串解构3.4 数值解构3.5 默认值解构4.模板字符串5.扩展运算符 (...)1.变量声明(let)变量不能重复声明 let name='zhangsan'; // let name='lisi';//错误 let不能重复声明 name='xioaming'; //可以重复赋值变量可以被重复赋值块级作用域 for(var i=0;i<10;i++){

2021-10-13 18:28:38 340

原创 this指向问题

this指向问题this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this指向谁,一般情况下this的最终指向的是那个调用他的对象。全局作用域或普通函数中this指向全局对象window(注意定时器里的this指向window)(window调用) console.log(this); function fn(){ console.log(this) } window.fn(); window.setTimeout(function(){ console

2021-10-13 17:26:02 78

原创 JavaScript对象,构造函数,原型和原型链

JavaScript对象

2021-10-08 23:40:34 640

原创 ES6基础

es6ES6简介模块化开发es6之前的模块化CommonJSAMDCMDAMD和CMD区别ES6和CommonJS的区别ECMA协议制定标准,ECMA-262是对JavaScript的标准。TC39由各大浏览器 产商组织成的,维护ECMA-262的标准。ES6简介es5为JavaScript2015年前的版本 , es6为2015年之后的版本。JavaScript = ECMAScript + DOM +BOM.es6只是对语法和句法进行更新,即只改变了ECMAScript , 未改变DOM和

2021-10-08 23:19:35 622

原创 JavaScript内置对象

内置对象内置对象Math 对象Date对象Date方法的使用Date()构造函数的参数日期格式化时间戳内置对象JavaScript中对象分为3种:自定义对象,内置对象,浏览器对象内置对象就是JS由于自带的一些对象,这些对象提高开发者使用,提供了一些常用的或者最基本必要的功能。内置对象可以帮助开发者快速开发。JavaScript中提供多个内置对象:math,date,array,string等。Math 对象Math数学对象,不使用一个构造函数,所有不需要new来调用,而是直接使用里面的属性和方

2021-10-08 23:18:02 307

空空如也

空空如也

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

TA关注的人

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