- 博客(40)
- 收藏
- 关注
原创 vue-cli项目中,H5页面打包加载优化
问题最近做到H5项目,打包在测试环境发布后,chunk-vendorjs文件加载6s阻塞,使得页面打开看起来非常慢解决方案1,因为是chunkjs包体积过大,第一个想到的是减小打包后的hcunk-vendor文件体积我们知道,webpack打包的时候,会把项目中import涉及到的node modules里面的包都打进去。所以项目开发中,除了...
2020-05-03 15:28:48
693
原创 关于echarts的api功能本地测试可行,打包线上功能失效问题
最近在用echarts开发一个H5的柱状图页面大致情况是在本地运行,浏览器显示正常,但是webpack打包后发到线上测试环境,功能就失效。排除结果:前端在本地运行的时候,会获取nodemodules安装的依赖包,确认过package.json里面的echarts依赖包是最新的4.7.0版本但是本地打包后发到线上,原先功能失效。看到webpack里面的externals: ...
2020-04-27 19:35:23
1378
原创 面试题汇总
1,解释防抖和节流2,前端重绘和回流3,css绘制三角函数4,react的生命周期5,如何看待react组件化6,webpack的plugin7,敏捷开发8,hook9,Promise如何区分是哪个错误请求10,serviceworker12,webwoker13,浏览器的存储14,ES6数据结构15,浏览器输入地址到返回数据16,let和var的区别17,promi...
2019-12-12 09:12:55
192
原创 python实现邮件发送
python 实现自动发送邮件功能自动化邮件功能也是自动化测试项目的重要需求之一.例如我们想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.假设生成的测试报告和许多人相关,每个人都去测试服务器查看会比较麻烦,如果把这种主动的且不及时的查看变成被动且及时的查收,就方便多了SMTP(Simple Mail Transfer Protocol) 是简单邮件传输协议,他是一组用户由...
2019-06-25 15:44:10
188
原创 WebDriver API文档
WebDriver API文档定位元素find_element_by_id:通过id属性定位find_element_by_name:通过name属性定位find_element_by_class_name:通过class属性定位find_element_by_tag_name:通过tagname(div,input)定位元素find_element_by_link...
2019-06-24 13:58:52
2396
原创 typescript编辑tsc时报错Unable to resolve signature of method decorator when called as an expression.
背景:typescript的api文档装饰器,本地运行命令行tsc filename.ts,试图编译成js文件时,vscode终端报错Unable to resolve signature of method decorator when called as an expression.解决方案:官网文档提供方法其中tsconfig.json文件通过tsc --init调出但...
2019-03-27 10:21:57
11875
原创 Typescript学习笔记
ts数据类型1,booleanvar flag:boolean=true2,numbervar num:number=1233,数组类型var arr1:number[]=[1,2,3]var arr2:Array<number>=[1,2,3]var arr3:any[]=[1,"2",true]4,stringvar string:string="1212...
2019-03-25 16:54:35
188
转载 上传本地项目至github方法
参考博客链接:https://www.cnblogs.com/xuancaolinxia/p/5677503.html
2018-12-15 15:18:12
136
原创 Rxjs学习笔记四
过滤类操作符filter使用filter产生的Observable对象,产生数据的时机和上游一致,当上游产生数据的时候,只要这个数据满足判断条件,就会立刻被同步传给下游firstfirst可有没有判定函数参数,当不给任何判定函数的时候,就相当于找上游Observable吐出的第一个数据first的第二个参数就是一个结果选择参数,把代表满足上游的值和序号合并为一个数组,传递给下游...
2018-08-25 16:42:00
198
原创 D3学习一(精通D3j.js 交互式数据可视化高级编程)
一、SVGSVG预定了其中形状元素,分别为矩形:<rect>;圆形:<circle>;椭圆:<ellipse>;线段:<line>;折线<polyline>;多边形:<polygon>;路径<path>1,矩形矩形的参数共有6个x:矩形左上角x坐标 y:矩形左上角y坐标 width:矩形的宽度
2018-08-25 08:08:06
2991
原创 Promise.all方法
Promise.all 接收一个 promise对象的数组作为参数,当这个数组里的所有promise对象全部变为resolve或reject状态的时候,它才会去调用 .then 方法。向 Promise.all 传递一个由封装了XHR通信的promise对象数组的话,则只有在全部的XHR通信完成之后(变为FulFilled或Rejected状态)之后,才会调用 .then 方法。func...
2018-08-21 09:23:40
1257
原创 关于base64转码
一、计算机开始之初,HexHex的编码原理是:把一长串二进制数每4个分一组,如果位数不够就在高位补0。4位数字一共只有16种情况,分别用0-9,A-F表示这16种情况。二、ASCII码美国信息交换标准代码,简称ASCII码表;这个码表包括了数字、英文大小写、符号、以及各种各样的转义字符,可以包含英文所用的全部功能。很快地,ASCII码称为了国际标准,现在大家知道的编码形式,都是与A...
2018-08-19 10:17:56
4165
原创 Rxjs学习笔记三
合并类操作符concat:首尾相连类似于数组中的concat方法:1,从第一个Observable对象获取数据,把数据传给下游;2,当第一个Observable对象complete之后,concat就会去subscribe第二个Observable对象获取数据,把数据同样传给下游; 3, 以此类推,知道最后一个Observable完结之后,concat产生的Observable也就完结了...
2018-08-19 08:05:11
432
原创 Rxjs学习笔记二
--------------除了上帝,一切皆有起源----------------创建同步数据流只需要关心产生哪些数据,数据之间的先后顺序如何,不需要考虑时间方面的问题of:列举数据把参数数据用Obeservable对象来封装,同步吐出数据,没有任何时间间隔,吐出数据后,这个数据流就终结了Rx.Observable.of(1,2,3).subscribe(x=>conso...
2018-08-18 20:10:15
1010
原创 Rxjs学习笔记一
函数式编程声明式和声明式相对应的编程方式叫命令式编程,两者区别参考函数的map和for循环纯函数满足两点条件:1,函数的执行过程完全由输入参数决定,不会受除参数之外的任何数据的影响;2,函数不会修改任何外部状态,比如修改全局参数或传入的参数对象与纯函数相反的是不纯函数,可能会做以下几点:1,改变全局参数的值; 2,改变输入参数的对象 3,读取用户的输入,比如调用了alert或者co...
2018-08-18 17:02:03
372
原创 nodejs之express框架三之板模引擎介绍
一、介绍一下express自带的发送html至浏览器方法app.get('/form',function(req,res){ res.sendFile(__dirname+'/form.html')})二、模板引擎(ejs.co):在html中嵌入动态数据地址:http://ejs.co/npm install ejs --save //安装三、新建form.e...
2018-08-12 14:09:20
196
原创 nodejs之express框架二(文件上传)
一,新建form表单提交的html页面(form.html)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ini
2018-08-12 11:39:53
263
原创 nodejs之express框架一
文档手册:http://expressjs.com/en/4x/api.html#req.app1,新建一个空的文件夹:hello-express2,文件夹中新建文件express.js3,初始化文件夹npm install4,安装express和nodemonnpm install express -savenpm install -g nodemon 5,...
2018-08-06 07:55:48
210
原创 node学习基础篇三
一、nodejs服务器介绍注:‘text/plain’:纯文本,‘application/json’:json格式,‘text/html’:html格式,‘text/plain’:纯文本var http = require('http');var onRequest = function(request, response) { console.log('Request re...
2018-08-05 12:16:48
163
原创 node学习基础篇二
一、读写文件(同步,异步)var file=require('fs');//同步方法var text1=fs.readFileSync('text1','utf8'); //读取文件名是text1下的内容fs.writeFileSync('text2',text2,'utf8'); //把text1的内容写入新建的文件名是text2中//异步方法var text1=...
2018-08-05 09:37:55
153
原创 node学习基础篇一
一、全局对象1,__dirname: //查看当前文件路径2,__filename: //输出当前文件名二、回调函数function callFunction(fn,name){ fn(name);}function sayHello(name){ console.log('hello' + name)}callFunction(sayH...
2018-08-04 15:19:38
119
原创 react-router 入门一
1,下载react-router-dom npm add react-router-domcreate-react-app demo12,引入import {BrowserRouter as Router,Route ,Link} from 'react-router-dom';3,设置路由app.js:class App extends Component {...
2018-07-25 23:12:04
166
原创 es6数组对象新方法总结
1,数组的合并var a=["校长","老师"];var b="我";var c=[...a,b];c=["校长","老师","我"];2,对象,()里面实现对象的组装var a=(( b={}, b.name="小花", b));console.log(a) //{name:'小花'}3,对象的映射va
2018-07-16 22:34:18
622
原创 js判断对象是否为空的方法
1,把对象转化成字符串var a={};a=JSON.stringify(a);a=='{}' //true2,for-in 循环var obj = {};var b = function() {for(var key in obj) {return false;}return true;}alert(b());//true3,使用ES6的Objec...
2018-07-16 19:05:15
190
原创 Rxjs的zip和switchMap方法
1,Zip将多个 Observable 组合以创建一个 Observable,该 Observable 的值是由所有输入 Observables 的值按顺序计算而来的。如果最后一个参数是函数, 这个函数被用来计算最终发出的值.否则, 返回一个顺序包含所有输入值的数组.Rx.Observable.zip(Rx.Observable.of(2),Rx.Observable.of(3)).subscri...
2018-07-11 09:42:40
5879
转载 CSS清除浮动几大方法
在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了,下面总结8种清除浮动的方法,测试已通过 ie chrome firefox opera,需要的朋友可以参考下清除浮动是每一个 web前台设计师必须掌握的机能。css清除浮动大全,共8种方法。 浮动会使当前标签产生向上浮的效果,同时会影响到前后标签、父级标签的位置及 width height 属性。而且同样的代码,在各种浏览器中显示效果也有...
2018-07-03 09:43:45
117
原创 JS判断空对象的几种方法
1,把json对象转化成json字符串,判断是否全等于“{}”var data = {};var b = (JSON.stringify(data) == "{}");alert(b);//true2,for-in循环,判断对象里面是否有值var obj = {};var b = function() {for(var key in obj) {return false;}retur...
2018-07-03 08:53:12
243
转载 js中 与,或,以及异或的二进制使用
1,&:与(x&y)两二进制上下比较只有位值都为1时才取1,否则取0 例如:14&15 (14 二进制 1110 15 二进制 1111 &与的结果 1110 ----》结果14)2,|:与(x|y)两二进制上下比较只有位值都为0时才取...
2018-06-25 09:30:09
1697
原创 js中关于二进制与十进制的相互转换
十进制转二进制var a = 40;alert(a.toString(2)); //转成二进制 二进制转十进制alert(parseInt( "10010111100",2)) ;//转成十进制
2018-06-25 09:18:17
11865
转载 深入理解ES6箭头函数中的this
简要介绍:箭头函数中的this,指向与一般function定义的函数不同,比较容易绕晕,箭头函数this的定义:箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。1、何为定义时绑定我们来看下面这个例子:var x=11;var obj={ x:22, say:function(){ console.log(this.x) }}obj.say();/...
2018-06-07 13:29:21
292
转载 正则表达式
创建/source/flags 或 new RegExp(source[, flags])source: 正则表达式文本flags: 修饰符,多个修饰符可以任意组合,取值如下g: 全局匹配,即查找所有匹配,而不是找到第一个匹配后停止i: 忽略大小写m: 多行,将 ^ 和 $ 规则应用在多行的每一行中u: Unicodey: 粘性匹配,仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引...
2018-05-31 10:46:19
244
原创 axios基础api
axios基于http客户端的promise,面向浏览器和nodejs特色浏览器端发起XMLHttpRequests请求node端发起http请求支持Promise API监听请求和返回转化请求和返回取消请求自动转化json数据客户端支持抵御安装//使用npm:$ npm i axiso使用 bower$ bower instal axios//使用cdn<script src="...
2018-05-31 10:23:37
548
转载 promise方法
含义Promise 对象用于一个异步操作的最终完成(或失败)及其结果值的表示。简单点说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。它的一般表示形式为:new Promise( /* executor */ function(resolve, reject) { //发送ajax请求,根据回调信息进行下...
2018-05-31 10:05:29
355
原创 HTML5 script标签和link标签
1,不加标签的script阻塞dom解析,执行顺序按照标签顺序2,async script不阻塞dom解析,执行顺序不固定,看网络状况3,defer script不阻塞dom解析,等dom解析执行完毕后再执行,执行顺序按照标签顺序4,link css不阻塞dom解析,阻塞了script的执行和dom的渲染...
2018-05-30 16:34:27
2835
转载 bind方法解释
MDN的解释是:bind()方法会创建一个新函数,称为绑定函数,当调用这个绑定函数时,绑定函数会以创建它时传入 bind()方法的第一个参数作为 this,传入 bind() 方法的第二个以及以后的参数加上绑定函数运行时本身的参数按照顺序作为原函数的参数来调用原函数。直接来看看具体如何使用,在常见的单体模式中,通常我们会使用 _this , that , self 等保存 this ,这样我们可以...
2018-05-30 11:55:54
1217
原创 js高程读书笔记
1,检测是否是数组的两种方式自从 ECMAScript 3 做出规定以后,就出现了确定某个对象是不是数组的经典问题。对于一个网页,或者一个全局作用域而言,使用 instanceof 操作符就能得到满意的结果:if (value instanceof Array){ //对数组执行某些操作}instanceof 操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个...
2018-05-10 14:12:25
145
原创 D3入门
基础API选择元素d3.select()1选择所有指定元素的第一个d3.selectAll()1选择指定元素的全部绑定元素data()1绑定一个数组到选择集上,数组的各项值分别与选择集的各元素绑定dataum()1绑定一个数据到选择集上function(d, i){ }1当选择集需要使用被绑定的数据时,常需要使用匿名函数。其包含两个参数,其中: d 代表数据,也就是与某元素绑定的数据 i 代表索引...
2018-05-09 09:44:17
265
转载 JS中的call()方法和apply()方法用法总结
最近又遇到了JacvaScript中的call()方法和apply()方法,而在某些时候这两个方法还确实是十分重要的,那么就让我总结这两个方法的使用和区别吧。1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法。2. 相同点:这两个方法的作用是一样的。都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。一般来说,this总是指向调用...
2018-05-09 08:43:34
127
原创 关于js动态渲染的元素绑定事件遇到的坑
总结一下今天项目中遇到的关于动态渲染元素绑定事件遇到的一些坑。首先作为后台管理系统除左边侧边栏外,右边主体部分都是动态渲染出来的。第一:在给右侧主体里面元素绑定事件的时候,不要直接on绑定,而是用父元素代理事件来绑定,直接on是绑不上去的。第二:因为是动态渲染的元素,因此一般的绑定事件方法会造成右侧页面局部刷新之后,事件会重复叠加。解决方法是绑定之前先进行事件解绑,我是用的of
2017-11-17 19:55:07
5017
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人