- 博客(22)
- 收藏
- 关注
原创 前端性能优化实践
1、背景网站前端的用户体验决定了用户是否想要去使用网站的功能,而网站的功能决定了用户是否会一票否决前端体验。 不仅仅如此,如果前端优化得好,他不仅可以为企业节约成本,因为增强的用户体验,他还能给用户带来更多的用户。2、前言从输入 URL 到页面加载完成,发生了什么?我们现在站在性能优化的角度,一起简单地复习一遍这个经典的过程:首先我们需要通过 DNS(域名解析系统)将 URL 解析为对应的...
2019-09-16 14:31:22
525
原创 三方支付实践
对于付费类项目,必不可少的一步便是接入各种支付,目前国内比较流行的三方支付主要集中在支付宝,微信支付,京东支付等。这几家主流支付,各有各的要求,各有各的bug需要处理。因此在这里将会针对每种支付的支付流程,支付配置,支付异常处理,支付关键点等做一个统一的总结。支付宝支付支付流程 支付宝支付算是所有三方支付里最为简单的,不需要前端进行任何配置,它的支付流程如下:...
2019-09-01 18:50:34
471
原创 Video在移动端播放的处理
属性概述1、playsinline 设置内嵌播放,移动端还需加webkit-playsinline属性2、controls属性,进度条控制,不加该属性,苹果端会禁掉进度条,安卓端不行,暂无法解决,只有安卓微信可以特殊处理,加属性x5-video-player-type="h5"3、object-fill样式,实现全屏播放使用1、内嵌播放不全屏,安卓无法去掉进度条,安卓微信去掉进...
2018-11-26 15:05:18
2995
原创 前端图片上传总结
前端经常有图片上传的需求,这里做一下总结。对于前端来说,单纯的上传图片还是很简单的,<input type=“file”/>就可以搞定,你可以增加size属性控制用户一次性能选几张。采坑开始:1、部分安卓手机微信直接进图库选取,不能拍照经排查,安卓微信只认accept="image/*",其他的都不好使,加上这个就好了。。。2、往往需求不会那么简单。图片...
2018-10-28 17:56:08
1167
原创 快应用采坑(3)-使用差别
快应用开发很多地方与常规前端开发不同,根据自己的采坑,整理以下几点:1、如果属性名称使用驼峰定义,如:prop2Object,那么在外部传递数据时请使用-连接,如:prop2-object,否则无法传值,如: 2、单位为px,该单位已实现各种屏幕自适应,默认设计稿宽度750px,此时样式1px=设计稿1px 3、默认为flex布局,快应用中display只有两种值,
2018-04-03 15:12:43
3371
1
原创 快应用采坑(2)-安装
官方提供构建工具hap-toolkit这是官方提供的构建工具,类似于vue cli这种,按照官网安装即可。运行第一个项目可以参考https://doc.quickapp.cn/tutorial/getting-started/hello-world.html里面有几个地方值得注意:1、调试的手机上需要同时安装 调试器和平台预览版,分别从上面的连接里下载apk安装2、如果需要边开
2018-04-03 15:09:23
515
原创 快应用采坑(1)-安装
华为FastApp IDEIDE下载连接:https://omp.hicloud.com/dsm/hms/cn/doc/fastapp_fastapp_devprepare_install_tool.html安装相对来说简单,安装完毕后打开,官方提供了三种模板,任选一种,创建即可。下面是运行第一个demo的流程,相对来说复杂一些,需要电脑连接安卓手机,调试时会将快应用推送到手机上运
2018-04-03 15:07:06
1908
原创 canvas采坑(1)
项目中遇到了需要用canvas合成图片的需求,本来看到网上教程,几句话搞定:var canvas=document.getElementById("myCanvas");//获取cnavas那个domvar ctx=canvas.getContext("2d");//貌似是定义为2Dvar bg = document.getElementById("scream");//获取id为img的do...
2018-03-18 17:53:15
301
原创 小米前端面试二面
Question:有一个url数组var urls = ['/a', '/b', '/c',...]要求依次请求这几个url, 要求是 第一个请求完了才发第二个请求,第二个完了才发第三个请求如此依次。var url = [];var count = 0;function getData(url){ if(count>=url.length) return; count++...
2018-03-18 16:04:24
2386
原创 微信小程序学习笔记
1、background-image只能用网络url或者base64 .本地图片要用image标签才行 2、事件绑定 value 是一个字符串,需要在对应的 Page中定义同名的函数。不然当触发事件的时候会报错。3、bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡4、需要在捕获阶段监听事件时,可以采用capture-bind、ca
2018-03-16 17:35:41
199
原创 ES6编程 箭头函数总结
单个参数,且函数执行体仅包含一条语句,返回值无需return关键字。const foo = a => a + 1;foo(1); // 2单个参数,函数执行体含多条执行语句,需要使用块级代码段,即使用{}括起来,不过此时若存在返回值,务必记得return。 const foo = a => { a *= 2;
2018-03-15 19:38:10
199
原创 es6编程 var let const总结
块级作用域使用let声明块级作用域变量:let a = 'test';console.log(a); // test if (true) { let b = 1;}console.log(b); // error: b is not defined 由此可见,块级作用域变量作用范围在'{}'内,另外在单个块级作用域内,同
2018-03-15 19:27:50
212
原创 Vue中computed(计算属性)、methods、watch的区别
初学vue,阅读api后,发现Vue提供了多种逻辑处理的方法,单纯的方法methods,computed(计算属性)以及watch等,充分理解这三者的区别,才能写出更加健壮的Vue代码。1、methods,computed的区别先上例子:var vm = new Vue({ el: '#app', data: { msg: 'nihao', text: 'byebye' },...
2018-03-15 18:32:08
4441
原创 Mutation与Action的使用
Vuex是一个状态管理模式,它采用集中式管理各个组件的状态,并以一定的规则使状态发生变化。整个应用的状态保存在store中,而mutation是改变这些状态的唯一方法。举个例子:const state={ a:1}const mutations={ change(state,n){ state.a=n; } }const store=newVuex.Store(...
2018-03-15 17:45:46
1826
原创 setTimeout async promise执行顺序总结
最近被看程序写结果的笔试题搞疯了,最典型的当属settimeout,async,promise混用时,哪一步该执行什么,分不清楚。话不多说,先上代码(该题为今日头条前端开发笔试题) async function async1() { console.log("async1 start"); await async2(); ...
2018-02-18 18:30:47
16817
15
原创 js闭包理解
闭包是js中的一大特色,也是一大难点。简单来说,所谓闭包就是说,一个函数能够访问其函数外部作用域中的变量。闭包的三大特点为:1、函数嵌套函数2、内部函数可以访问外部函数的变量3、参数和变量不会被回收。举例来说:function test(){ var a=1; return function(){ alert(a); ...
2018-01-22 15:15:51
21718
2
原创 js变量提升理解
通俗的来说,变量提升就是,在变量的作用域内,不管变量在何处声明,都会被提升到作用域的顶部,但是变量初始化的顺序不变。(注意,变量提升只将声明部分提升,赋值部分不改变位置,具体可以看例子理解)这句话是什么意思呢?举个例子:function test() { a=1; b=2; c=3 var a,b,c; console.log(a); con
2018-01-19 22:33:22
854
原创 This 指向问题的理解
随着函数使用场合的不同,this的值会发生变化。但是有一个总的原则,那就是this指向的是,调用函数的那个对象。有几种情况: 1、全局函数中的this函数的最通常的用法,属于全局性调用,示例代码:var x = 1;function test(){ this.x = 0; alert(x);}test(); //结果为0因为test函数不属于具体的哪个对象,因此是全局的,
2018-01-17 18:30:05
333
原创 java jdbc编程,运行总显示不允许链接
错误提示 java.sql.SQLException: null, message from server: "Host '10.12.92.28' is not allowed to connect to this MySQL server"at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:998)
2016-05-14 00:04:20
606
1
原创 linux常用命令笔记
Linux常用命令:一、命令基本格式[root@localhost ~]#root:当前登录用户localhost:主机名~:当前所在目录(家目录)#:超级用户的提示符 普通用户的提示符为$命令格式命令 [选项] [参数]注意:个别命令使用不遵循此格式 当有多个选项时,可以写在一起 简化选项与完整选项 如:-a 等于 --all*******
2016-05-14 00:02:38
233
原创 phonegap cordova 环境搭建及安装
因为学校有项目需要快速开发出来所以选择了phonegap+html5的结构来搞,第一步就是搭建phonegap环境。phone gap说白了就是一个封装器,可以创建出自动创建出安卓工程或ios的,你只需要把写好的html文件拖入,然后就可以打包成apk了。言归正传,来说环境搭建,当然前提是电脑里有jdk了。第一步,百度搜索nodes,官网下载下来,下recommended for
2016-05-14 00:01:00
3425
原创 mysql 修改默认密码
很多人安装mysql后就直接打开命令行使用了,发现根本创建不了数据库,报错为Access denied for user 'root@localhost'这是因为你没有登录你的数据库,所以没有相应权限,mysql为我们默认带一个账户,账户名为root,密码为空,接下来介绍如何自己改默认密码第一步,打开cmd,输入mysql -u root mysql第二步,输入update u
2016-05-13 23:59:15
444
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人