自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

前端超人

由于不经常使用csdn,私信和评论难以及时回复。需要讨论的朋友可以前往 https://github.com/superman66

  • 博客(54)
  • 收藏
  • 关注

原创 理解 async/await

刚出来不久的 ES7 包含了 async 函数,它的出现,终于让 JavaScript 对于异步操作有了终极解决方案。No more callback hell。 async 函数是 Generator 函数的语法糖。使用 关键字 async 来表示,在函数内部使用 await 来表示异步。 想较于 Generator,Async 函数的改进在于下面四点: * 内置执行器。Generator

2017-07-18 21:58:41 9515

原创 基于 Jest + Enzyme 的 React 单元测试

前言如果你想学习 React 单元测试,那就从这篇文章开始吧。Star 项目,clone 到本地,根据教程走一遍,有任何问题欢迎 issue 讨论。 项目GitHub地址:react-test-demo文章主要内容如下: * Jest 和 Enzyme 的基本介绍 * 测试环境搭建 * 测试脚本编写 * UI 组件测试 * Reducer 测试 * 运行并调试 * 参考

2017-04-27 15:34:50 10151

原创 【vue+axios】一个项目学会前端实现登录拦截

一个项目学会前端实现登录拦截 一个项目学会vue全家桶+axios实现登录、拦截、登出功能,以及利用axios的http拦截器拦截请求和响应。前言该项目是利用了Github 提供的personal token作为登录token,通过token访问你的Repository List。通过这个项目学习如何实现一个前端项目中所需要的 登录及拦截、登出、token失效的拦截及对应 axios 拦截器

2017-02-17 12:03:43 57667 7

原创 Vue2.0+vue-router实现简易豆瓣电影webApp

运行项目项目地址:https://github.com/superman66/vue2.x-douban clone项目到本地,进入项目文件夹,安装依赖git clone https://github.com/superman66/vue2.x-douban.gitcd vue2.x-doubannpm install然后运行npm run dev最后打开浏览器,输入localhost:888

2016-12-19 22:12:09 7002 1

原创 Wakatime 不升级会员也能查看历史数据了!

WakaTime 是一款优秀的编程时间管理工具,可以在各大编辑器上统计追踪你的编程时间。 下面的截图是 WakaTime 的 Dashboard,它统计了每天的编程总时长及对应的项目时长、编程时间段、跟前一天编程时间对比、所用的语言、编辑器。下面的截图是我的过去7天的统计数据,通过这几个维度,基本可以很全面量化你的编程时间。 强烈建议每个程序员都去使用这个工具。时间管理的第一步就是记录...

2018-08-26 22:23:30 2122 1

原创 React Suite v3.0 正式版发布

相信很多人会好奇,React Suite 是什么? React Suite 是 HYPERS 前端团队和 UX 团队开源的一套基于 React 的 UI 组件库,能够帮助您快速构建一个企业级应用。官网访问地址: rsuitejs.com为什么选择 React Suite ?我们在服务于很多企业的过程中发现,不管是大企业,还是中小企业都有一套(或者希望有一套)自己的 VI ,其中...

2018-04-25 12:10:33 562

原创 个人博客 SEO 优化(2):站内优化

文章首发于我的博客:个人博客 SEO 优化(2):站内优化 对于搜索引擎原理不清楚的可以看第一篇文章:个人博客 SEO 优化(1):搜索引擎原理介绍SEO 优化可以分为站内优化和站外优化,而站内优化又分为:网站结构优化和网站页面优化。从 SEO 角度来看,做网站结构优化的目的在于:提高用户体验提高收录更好的权重分配优化锚文字分布网站结构优化简单概括有下面几个...

2018-04-16 22:04:51 2827

原创 个人博客 SEO 优化(1):搜索引擎原理介绍

文章首发于我的博客:个人博客 SEO 优化(1):搜索引擎原理介绍写在文章前面: 前段时间接到一个 SEO 优化的私活。为了完成这个活,只能赶鸭子上架,从零开始系统地去学习 SEO 知识。经过几天的学习后,也算是入了门。才意识到 SEO 它的意义与重要性,觉得 SEO 对于做个人站点(博客也算是个人站点)的意义与重要性不言而喻。可能有人会反驳在如今自媒体、微信公众号及知乎、掘金、sf...

2018-04-14 12:54:20 4572

原创 深入理解 Koa2 中间件机制

我们知道,Koa 中间件是以级联代码(Cascading) 的方式来执行的。类似于回形针的方式,可参照下面这张图:今天这篇文章就来分析 Koa 的中间件是如何实现级联执行的。 在 koa 中,要应用一个中间件,我们使用 app.use():app .use(logger()) .use(bodyParser()) .use(helmet())先来看看use() 是

2018-01-17 22:18:22 2022

原创 koa 实现 jwt 认证

关于 Token 认证机制,这里不做更多解释。不清楚的可以看我的这篇文章:Web开发中常见的认证机制 GitHub 地址:koa-jwt-sample所需库bcrypt - 用于加密密码koa-jwt - jwt 中间件jsonwebtoken - 用于生成token下发给浏览器,在 koa2 以后的版本不再提供 jsonwebtoken 的方法,所以需要另行安装。实现思路整个方案实现的流

2017-11-26 23:51:44 5376

原创 50行代码实现 node 转发 API 请求服务

GitHub地址:node-proxy-api简单的几行代码实现如何通过Node + Express + superagent 转发 API 请求。已部署到 Heroku。安装依赖Node.js 转发请求用到了 express和superagent. superanget是一个 Node.js HTTP client。npm i express superagent -S端口设置由于部署到Herok

2017-03-31 14:17:55 6508

原创 Web开发中常见的认证机制

HTTP基本认证(HTTP Basic Auth)在HTTP中,HTTP基本认证是一种允许Web浏览器或者其他客户端在请求时提供用户名和口令形式的身份凭证的一种登录验证方式。简单而言,HTTP基本认证就是我们平时在网站中最常用的通过用户名和密码登录来认证的机制。 优点 HTTP 基本认证是基本上所有流行的网页浏览器都支持。但是基本认证很少在可公开访问的互联网网站上使用,有时候会在小的私有系统中使

2017-03-14 18:12:41 6872

原创 面对众多的前端框架,你该如何学习?

记得就在刚接触 AngularJS 的时候,那时市场上正值 React、Vue、AngularJS 三足鼎立,大量的前端新人可能都会有这样的困惑:这三个框架到底该学哪个好呢?我自己当时也是非常的迷惑,找不到一个合适的答案。 作为一个 React、Vue、AngularJS 都写过的人,现在这个已经不再是问题了。先说结论: 公司用哪个框架就先学框架;其次自己喜欢哪个框架就学哪个框架 我的经历是因

2017-03-14 18:09:52 6869 2

原创 Mac使用tree生成目录结构

前言程序员经常会有需求,需要列出项目的结构树。Mac或者Linux下可以使用tree列出项目结构,如下图这种:├── build├── config├── docs│ └── static│ ├── css│ └── js├── src│ ├── assets│ ├── components│ ├── store│ │ └── mo

2016-12-17 21:29:59 43778 3

原创 ionic开发App-问题收集总结

总结使用ionic开发App算是告一段落了。使用前端的技术来统一移动端,不得不承认这个听起来很酷。JavaScript要统一世界的节奏。 然而现实并不是这样,使用ionic开发App虽然在开发速度上比原生开发快很多(有AngularJS的基础上,1~2个礼拜熟悉ionic框架,一个月左右做完App),但依然存在下面这个几个比较致命的问题: 1. App流畅度不足,用户体验差。尤其是在Androi

2016-11-19 23:28:35 5647

原创 【ionic App问题总结系列】ionic 集成友盟插件以及多渠道打包

安装umeng提供的插件第一步:下载SDK下载地址:http://dev.umeng.com/analytics/h5/sdk-download第二步:配置appkey下载解压缩后,打开里面*/umeng-plugin-android/下的plugin.xml,更改appkey: <!-- appkey --><meta-data android:name="UMENG_APPKEY" andro

2016-11-19 23:21:04 3685 7

原创 【ionic App问题总结系列】ionic点击系统返回键退出App

在安卓下,如果不处理系统返回键的事件,那么每次点击返回键,将页面将返回到上一个路由,这种逻辑不符合app的路由逻辑。正确的应该是:当页面到了各个导航页的首页时,此时再按返回键应该提示是否退出app,用户点击确认后退出app。在run()方法中添加下面的方法$ionicPlatform.registerBackButtonAction(function (e){ //阻止默认的行为

2016-11-19 23:15:36 8551 6

原创 【ionic App问题总结系列】ionic 微信朋友圈分享

前言做完之后才发现实现ionic微信朋友圈、朋友分享并不难。只要按照着插件的文档来就行。但是在刚接触的时候依然是存在疑惑,还是写点记录总结下吧(本文是在开发Android App的环境下产生的)。整个流程大致是下面三步:微信开放平台申请应用获取appid安装cordova微信分享插件在代码中调用实现分享开发前的准备不管你使用什么样的cordova 微信分享插件,都必须要在微信开发者平台(ht

2016-11-19 23:10:16 3271 2

原创 【ionic App问题总结系列】ionic 如何更新app版本

ionic 如何进行自动更新ionic App更新有两种方式:第一种是普通的从远程下载apk,安装并覆盖旧版本。另外一种就是采用替换www文件夹的内容,实现应用内更新,而无需下载安装apk。 这篇文章讲的是通过第一种方式,来实现app的更新。 App更新流程比较简单,如下图: 这里用到的后端的接口字段如下:{ "update_flag", // 更新的flag,一般取值分为不

2016-11-19 23:08:56 4187

原创 【ionic App问题总结系列】ionic登录拦截机制-使用Modal作为登录框

前言先来说说网页和App中交互的不同。在网页中,页面与页面之间的跳转过程较少会采用转场动画,直接就是页面切换。 而在App的交互方式中,页面切换是有转场动画的。页面进入一般都是从右到左的动画切换。这种交互方式通常表示页面正常的切换。还有一种页面进入方式就是从下往上进入,这种交互方式一般用于登录拦截时,弹出登录框,表示得是非正常状态下的页面切换。如下图所示,就是登陆拦截情况下的从下往上的页面进入效果

2016-11-19 22:54:29 4751

原创 【ionic App问题总结系列】ionic隐藏底部菜单栏ion-tabs

前言ionic中没有提供属性来控制底部菜单栏ion-tabs在页面中的显示与隐藏,只有一个类.tabs-item-hide可以控制,所以我们可以通过控制添加.tabs-item-hide来实现隐藏菜单栏的目的。实现方式三个步骤就可以实现了第一步,在ion-tabs指令上添加hideTabs<ion-tabs class="tabs-icon-top tabs-assertive {{hideTabs

2016-11-19 22:49:45 2185

原创 【你不知道的JavaScript(上)读书笔记】第1章:作用域

一、JavaScript编译原理传统的语言编译一般经历三个过程:分词/词法分析解析/语法分析代码生成 而JavaScript引擎则要复杂得多了。简单来说就是任何JavaScript代码在执行前都要进行编译(通常在代码执行前)。二、理解作用域要理解作用域之前需要了解下什么是作用域,它有什么作用?同时还需要了解JavaScript引擎和编译器是什么?引擎

2016-03-15 00:44:24 574

原创 【你不知道的JavaScript(上)读书笔记】第2章:词法作用域

什么是词法作用域词法作用域就是定义在词法阶段的作用域。是不是很难理解呢、换句话说就是,词法作用域意味着作用域由书写代码时函数的位置来决定的。如果还不能理解的话,先以一个简单的例子来说明: function fn1(a) { var b = a * 2;  function fn2(c) { console.log(a, b, c)

2016-03-15 00:43:30 498

原创 深入理解变量声明提升和函数声明提升

变量声明提升1、变量定义可以使用var定义变量,变量如果没有赋值,那变量的初始值为undefined。2、变量作用域变量作用域指变量起作用的范围。变量分为全局变量和局部变量。全局变量在全局都拥有定义;而局部变量只能在函数内有效。 在函数体内,同名的局部变量或者参数的优先级会高于全局变量。也就是说,如果函数内存在和全局变量同名的局部变量或者参数,那么全局变量将会被局部变量覆...

2016-03-05 20:51:02 24571 23

原创 AngularJS动态加载模块和依赖

本文章已同步发表到我的Github博客,欢迎访问!前言由于AngularJS是单页面应用框架,在正常的情况下,会在访问页面的时候将所有的CSS、JavaScript文件都加载进来。文件不多的时候,页面启动速度倒不会影响太多。但是一旦文件数太多或者加载的第三方库比较大的时候,就会影响页面启动速度。因此对于应用规模大、文件数比较多或者加载的第三方库比较大的时候,采用动态加载JS或者动态加载模块会极大提升

2016-02-24 22:14:21 8644 4

原创 【AngularJS学习笔记】用打包代替动态加载

说到前端优化,大部分人的第一个反应可能就是压缩合并静态文件:CSS、JS和图片文件。这个确实也是一个常规也有效的优化手段。 还有一种常规手段使用require.js进行动态加载。根据不同的需求去加载不同的模块和不同的静态文件,做到按需加载。这两种优化方法都是能提高网站的访问速度。 RequireJS是一个工具库,主要用于客户端的模块管理。它可以让客户端的代码分成一个个模块,实现异步或动态加

2016-02-19 17:26:19 2335

原创 【AngularJS学习笔记】AngularJS 压缩JS

大多数web项目在发布时候都会对js代码进行压缩,目的是为了减少js文件的大小,节省一点流量。 它的原理很简单,就是对参数及部分变量名和函数进行重命名。 但是这种工作方式在AngularJS的应用中会有例外。 由于AngularJS的依赖注入是根据参数名进行注入的,显然,对参数进行重命名会破坏这个机制。 如果不进行特殊处理,进行压缩(minify)之后,在执行时将会出现这样的错误

2016-02-17 01:14:01 2604

原创 JavaScript判断浏览器类型

每个浏览器对应的useragent不同,JavaScript通过判断useragent的类型,便可以判断出用户所使用的浏览器类型,包括IE、Firefox、chrome等。还可以判断用户是否通过移动端访问,是否是ios系统、Android系统,iPhone以及ipad系统。除此之外,判断是否是通过微信访问,也可以通过useragent来判断。 下面是判断useragent类型的代码段var bro

2016-01-25 23:47:08 1361

原创 【更改表单元素默认样式】更改自定义文件上传按钮样式

虽然我们无法直接更改表单的input[type=file]按钮,但是可以通过曲线救国的方式来实现。思路大致是这样的:1、将按钮设置透明度为02、在上面覆盖一个button,使二者位置完全重合,这样就可以实现改变上传按钮的样式,而不会影响上传功能。HTML代码如下<span class="sl-custom-file"> <input type="button" value="点击上传文件"

2016-01-25 23:45:00 4766

原创 解决webstorm卡顿问题

webstorm强大的功能就不多做介绍了。但是它的缺点也显而易见:吃内存。电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的。在我的笔记本8g内存 256ssd的配置下,运行webstorm还是会稍微有点卡。不过可以通过设置 内存值大小来解决。具体办法:找到WebStorm.exe.vmoptions这个文件,路径如下webstorm安装主目录>bin>

2016-01-25 23:38:37 64401 6

原创 【scss编译】基于Webstorm File Watch的自动编译scss文件.md

Webstorm自带了实时编译scss的功能:File Watch。通过添加scss File Watch,便可以实时编译scss文件将其转换为css文件第一步:打开setting页面 第二步进入File Watch,点击右上角的添加,选择SCSS类型  第三步、设置File Watch 选项选择scss命令地址,其余选项保持默认即可

2016-01-25 17:03:05 1437

原创 windows下基于sublime text3的nodejs环境搭建

windows下基于sublime text3的nodejs环境搭建

2016-01-11 15:49:43 804

转载 GIT使用教程与基本原理

这个教程之前是发在社区网站上,现在把它转到自己博客上:)http://oss.lzu.edu.cn/artical.php?id=16说明:该教程全部图片都来自于《pro git》。以下所有的操作,除非特别声明,都是基于Linux终端来进行的。如果你发现这篇文章有错误,或者其他问题,欢迎与我联系:[email protected]、什么是GITGit是一

2015-01-12 09:26:52 541

原创 使用ValidForm进行表单验证,结合SpringMVC检验用户名是否存在

使用ValidForm进行实时验证用户名是否存在

2014-08-18 17:03:44 8962

原创 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL

今天学习spring+Struts2整合的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:Xml代码  listener>      listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>  listener>   随

2014-06-27 16:39:09 5773

原创 Spring声明式事务之代理机制与tx标签两种方式

Spring的事务管理分为编程式事务和声明式事务。接下来以

2014-06-17 21:04:45 771

转载 java.lang.NoClassDefFoundError: org/aspectj/weaver/BCException

错误描述使用Spring3.0.3集成hibernate3,在添加声明式事务管理后,测试,发现抛出java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor异常,添加com.springsource.org.aopalliance-1.0.0后发现抛出java.lang.NoClassDefFoun

2014-06-17 20:13:47 924

转载 Spring 3 事务管理

在这篇文章中,我将向你展示如何使用Spring处理事务管理。Spring事务管理的优势非常容易使用,不需要一点底层事务API的知识你的事务管理代码将与具体的事务实现分离提供了注解和XML的配置方式并不需要运行在服务器上非常好!让我们开始一些基础信息,如果你狠了解事务的话,你可以忽略它。概览事务 保证你应用中(数据源)的数据保持一致。同样,你也需要熟悉ACID

2014-06-15 19:07:20 520

转载 Spring事务配置的五种方式

前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。    总结如下:    Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一

2014-06-15 15:55:28 414

原创 关于Spring3报org/aopalliance/intercept/MethodInterceptor错误的解决办法

在Spring3中,首次添加声明式事务管理

2014-06-10 10:17:15 1597

空空如也

空空如也

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

TA关注的人

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