秋意浓的小站

Web developer


  • 首页

  • 文章

  • 分类

  • 标签

  • 关于

  • 搜索
close

Angular路由Ui-Router详解

发表于 2017-04-14   |   分类于 Angular   |     |   阅读次数

UI-Router

UI-Router是Angular第三方开发用于管理UI与路由的模块,功能比Angular原生的ng-Route要强而且全,因此原生基本已经被其替代。

UI-Router是采用的是一种状态管理机制,“状态”可以继承,“状态”不禁包含url,还有views,controller等,以此来组织路由和控制界面UI的渲染,而不是单纯的改变路由。对于UI方面提供嵌套视图,可以一个页面嵌套多个视图,多视图再嵌套单个视图,每个视图可提供其特定的controller等针对管理,方便视图重用且功能精细,可以打造十分复杂的web应用。

阅读全文 »

Gulp构建前端自动化

发表于 2017-04-14   |   分类于 前端构建工具   |     |   阅读次数

Gulp简介

gulp是前端开发过程中一种基于流的代码构建工具,是自动化项目的构建利器;她能自动化地完成 javascript、coffee、sass、less、html/image、css等文件的测试、检查、合并、压缩、格式化、浏览器自动刷新、部署文件生成,并监听文件在改动后重复指定的这些步骤。在实现上,她借鉴了Unix操作系统的管道(pipe)思想,前一级的输出,直接变成后一级的输入,使得在操作上非常简单。
demo.png

阅读全文 »

JavaScript Namespace命名空间使用说明

发表于 2017-04-14   |   分类于 Js   |     |   阅读次数

什么是命名空间?语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 。无论项目大小,如果一开始不严格按照命名空间来编写程序,当你写到上万行JavaScript程序的时候,我相信你一定会后悔你的object或者function命名已经很混乱了。所以建议童鞋们一开始就要养成命名空间的习惯,比如你要开发一个项目,功能可能如下:

阅读全文 »

使用artTemplate模板引擎开发网站

发表于 2016-12-28   |   分类于 Js   |     |   阅读次数

artTemplate

artTemplate是一款性能卓越的 javascript 模板引擎。它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现。在 chrome 下渲染效率测试中分别是知名引擎 Mustache 与 micro tmpl 的 25 、 32 倍(性能测试)。
test.png
除了性能优势外,调试功能也值得一提。模板调试器可以精确定位到引发渲染错误的模板语句,解决了编写模板过程中无法调试的痛苦,让开发变得高效,也避免了因为单个模板出错导致整个应用崩溃的情况发生。

下载: 简洁语法版(推荐) 、 原生语法版 、 Github

特性

  1. 性能卓越,执行速度通常是 Mustache 与 tmpl 的 20 多倍(性能测试)
  2. 支持运行时调试,可精确定位异常模板所在语句(演示)
  3. 对 NodeJS Express 友好支持
  4. 安全,默认对输出进行转义、在沙箱中运行编译后的代码(Node版本可以安全执行用户上传的模板)
  5. 支持include语句,可在浏览器端实现按路径加载模板
  6. 支持预编译,可将模板转换成为非常精简的 js 文件
  7. 模板语句简洁,无需前缀引用数据
  8. 支持所有流行的浏览器
    阅读全文 »

Loader.css - CSS3实现加载动画

发表于 2016-12-23   |   分类于 Css   |     |   阅读次数

当网页的页面大小较大,用户加载可能需要较长的时间,在这些情况下,我们一般会用到(加载)loading动画,提示于用户页面在加载中,这些UX常识我想很多设计师都懂,但做一个GIF动画有点麻烦,为了方便,为大家分享Loader.css,仅用CSS3就能实现一个loading动画效果。
Loader.css当前支持28个动画效果。
loaders-demo.gif

阅读全文 »

Js模块化开发

发表于 2016-12-23   |   分类于 Js   |     |   阅读次数

前言

前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等的助力也使得前端开发得到重视,也使得前端项目越来越复杂,然而,JavaScript却没有为组织代码提供任何明显帮助,甚至没有类的概念,更不用说模块(module)了,那么什么是模块呢?

一个模块就是实现特定功能的文件,有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。模块开发需要遵循一定的规范,否则就都乱套了。
根据AMD规范,我们可以使用define定义模块,使用require调用模块。
目前,通行的js模块规范主要有两种:CommonJS和AMD。

AMD规范

AMD 即Asynchronous Module Definition,中文名是“异步模块定义”的意思。它是一个在浏览器端模块化开发的规范,服务器端的规范是CommonJS
模块将被异步加载,模块加载不影响后面语句的运行。所有依赖某些模块的语句均放置在回调函数中。
AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出。

阅读全文 »

Promise实现原理

发表于 2016-12-22   |   分类于 Js   |     |   阅读次数

Promise 对于一个Jser并不陌生, Promise 类似于一个事务管理器,它的作用就是将各种内嵌回调的事务用流水形式表达。利用 Promise 可以让异步编程更符合人的直觉,让代码逻辑更加清晰,把开发人员从回调地狱中释放出来。这么“高大上”的东西,以前写 nodejs 代码的时候只是简单的用用,还没有理解其基本的实现原理,罪过!
个人认为,理解编程思想最好的途径就是阅读一份简易的实现源码。很幸运,网上有不少Promise的简易实现,下面就来好好研究下吧!

基础概念

目前, Promise 是ECMAScript 6 规范的重要特性之一,各大浏览器也开始慢慢支持这一特性。当然,也有一些第三方内库实现了该功能,最流行的如:bluebird等。
Promise 对象用来进行延迟( deferred )和异步( asynchronous )计算。一个Promise 处于以下四种状态之一:

阅读全文 »

MongoDB基本命令

发表于 2016-12-22   |   分类于 数据库   |     |   阅读次数

安装与启动

下载Mongodb
成功安装并启动MongoDB后,再打开一个命令行窗口进入mongodb安装目录bin文件夹下输入mongo,就可以进行数据库的一些操作。

基本命令

输入help可以看到基本操作命令:
show dbs 显示数据库列表
show collections 显示当前数据库中的集合(类似关系数据库中的表)
show users 显示用户
use <db name> 切换当前数据库,这和MS-SQL里面的意思一样
db.help() 显示数据库操作命令,里面有很多的命令
db.foo.help() 显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find() 对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ) 对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
MongoDB没有创建数据库的命令,但有类似的命令。
如:如果你想创建一个myTest的数据库,先运行use myTest命令,之后就做一些操作(如:db.createCollection('user')),这样就可以创建一个名叫myTest的数据库。

阅读全文 »

实时通讯之Socket.io

发表于 2016-12-22   |   分类于 NodeJs   |     |   阅读次数

WebSocket

WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术。使用 WebSocket ,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道,两者之间就直接可以数据互相传送。而且它为我们实现即时服务带来了两大好处:

  • 节省资源:互相沟通的Header是很小的-大概只有 2 Bytes。
  • 推送信息:不需要客户端请求,服务器可以主动传送数据给客户端。

Socket.io

Socket.IO是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。

阅读全文 »

模块module.exports与实例化方法

发表于 2016-12-21   |   分类于 NodeJs   |     |   阅读次数

在nodejs中,提供了exports 和 require 两个对象,其中 exports 是模块公开的接口,require 用于从外部获取一个模块的接口,即所获取模块的 exports 对象。而在exports抛出的接口中,如果你希望你的模块就想为一个特别的对象类型,请使用module.exports;如果希望模块成为一个传统的模块实例,请使用exports.xx方法;module.exports才是真正的接口,exports只不过是它的一个辅助工具。最终返回给调用的是module.exports而不是exports。下面看代码;
首先来看module.exports,新建一个hello.js,代码如下:

1
2
3
4
5
6
7
8
module.exports=function(name,age,money){
this.name=name;
this.age=age;
this.money=money;
this.say=function(){
console.log('我的名字叫:'+this.name+',我今年'+this.age+'岁,月薪为:'+this.money+'元;')
}
};
阅读全文 »
12
秋意浓

秋意浓

青春总是太匆匆,转眼已是秋意浓

13 日志
6 分类
20 标签
GitHub 知乎 CSDN Segmentfault
© 2016 - 2017 秋意浓
由 Hexo 强力驱动
主题 - NexT.Pisces