自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

山水子农

傲不可长,欲不可纵,乐不可极,志不可满。

  • 博客(213)
  • 资源 (1)
  • 收藏
  • 关注

原创 js中typeof和instanceof用法区别

typeof和instanceof判断变量,typeof会返回一个变量的基本类型,只有以下几种:number,boolean,string,function(函数),object(NULL,数组,对象),undefined。;例:alert(typeof(1));//numberalert(typeof("abc"));//stringalert(typeof(true));//boo

2017-07-26 14:28:08 7242 2

原创 Vue过滤器和自定义过滤器

1、过滤器的用法,用  ‘|' 分割表达式和过滤器。Vue.js 允许你自定义过滤器,可被用作一些常见的文本格式化。过滤器可以用在两个地方:mustache 插值和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符指示:{{ message | capitalize }}Vue 2.x 中,过滤器只能在 mustache

2017-07-25 19:19:09 3214

原创 如何理解虚拟DOM?

1.为什么需要虚拟DOM    DOM是很慢的,其元素非常庞大,页面的性能问题鲜有由JS引起的,大部分都是由DOM操作引起的。如果对前端工作进行抽象的话,主要就是维护状态和更新视图;而更新视图和维护状态都需要DOM操作。其实近年来,前端的框架主要发展方向就是解放DOM操作的复杂性。     在jQuery出现以前,我们直接操作DOM结构,这种方法复杂度高,兼容性也较差;有了jQue

2017-07-25 16:33:37 3411

原创 RequireJS

RequireJS 是一个JavaScript模块加载器。它非常适合在浏览器中使用,但它也可以用在其他脚本环境,就像 Rhino and Node。使用RequireJS加载模块化脚本将提高代码的加载速度和质量。 一、为什么要用require.js?  先来看一段常见的场景,通过示例讲解如何运用requirejs?正常编写方式index.html:<!DOCTYPE html><html>

2017-07-06 13:01:12 404

原创 AMD

基于commonJS规范的nodeJS出来以后,服务端的模块概念已经形成,很自然地,大家就想要客户端模块。而且最好两者能够兼容,一个模块不用修改,在服务器和浏览器都可以运行。但是,由于一个重大的局限,使得CommonJS规范不适用于浏览器环境。下面代码如果在浏览器中运行,会有一个很大的问题。

2017-07-05 09:56:06 706

原创 CommonJS

CommonJS API定义很多普通应用程序(主要指非浏览器的应用)使用的API,从而填补了这个空白。它的终极目标是提供一个类似Python,Ruby和Java标准库。这样的话,开发者可以使用CommonJS API编写应用程序,然后这些应用可以运行在不同的JavaScript解释器和不同的主机环境中。在兼容CommonJS的系统中,

2017-07-04 17:29:32 1166

转载 getClientRects 和 getBoundingClientRect 的用法和区别

getClientRects获取元素占据页面的所有矩形区域 描述获取元素占据页面的所有矩形区域。语法    var rectCollection = object.getClientRects();值getClientRects 返回一个TextRectangle集合,就是TextRectangleList对象。TextRectangle对象包含了, top

2017-02-08 13:57:50 1875

转载 MySQL 获得当前日期时间(以及时间的转换)

1.1 获得当前日期+时间(date + time)函数:now()除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:current_timestamp()   current_timestamplocaltime()   localtimelocaltimestamp()   localtimestamp    这些日期时间函数,都等同于 now()

2017-01-19 11:25:42 472

转载 微信小程序开发新增5大功能

微信小程序在12月21日发布了新版本的开发工具,并在官网公布新增分享、模板消息、客服消息、扫一扫、带参数二维码功能。 有了分享功能,相信会给很多创业者带来了无限的可能性! 下面就来看看这些新功能到底怎么用吧!1、分享可以分享小程序的任何一个页面给好友或群聊。注意是分享给好友或群聊,并没有分享到朋友圈。一方面微信在尝试流量分发方式,但同时又不愿意开放最大的流量入口。开

2017-01-09 11:13:14 1332

原创 用nginx做node.js的反向代理

1、安装nginx(1)、从nginx官网下载相应的安装包   下载地址:http://nginx.org。建议下稳定版(2)、启动  解压至D:\Download\nginx-1.10.2,双击nginx.exe运行(或者通过控制台nginx -c conf\nginx.conf),默认使用80端口,日志见文件夹D:\Download\nginx-1.10.2\log

2017-01-04 17:38:52 2842

原创 node.js中mysql数据库连接池

在MySQL模块中,使用createPool方法创建连接池,在建立了连接池之后,可以直接使用连接池对象的getConnection方法从连接池中获取一个连接,如果连接池中没有可用连接,将隐式的建立一个数据库连接。  connection.release() 当一个连接不需要使用时,使用该方法将其归还到连接池中  connection.destroy() 当一个连接不需要使用且需要从连接池中

2017-01-04 11:02:09 4143

转载 Node.js的mysql数据库操作

连接MySQL数据库[javascript] view plain copyvar mysql = require('mysql');  var connection = mysql.createConnection({      host : 'localhost',      port : 3306,      database 

2017-01-04 10:52:16 997

原创 supervisor与pm2

1、supervisor  在开发过程中,每次修改代码保存后,我们都需要手动重启程序,才能查看改动的效果。使用 supervisor 可以解决这个繁琐的问题,全局安装 supervisor。这里注意一点的就是,supervisor必须安装到全局,如果你不安装到全局,错误命令会提示你安装到全局。  npm install -g supervisor运行 supervisor --ha

2017-01-04 10:42:11 6552

原创 express 快速创建一个应用的骨架

express 4.x以后将express命令独立到 express-generator包中,所以想使用express初始化项目目录,必须安装express-generator-h 选项可以列出所有可用的命令行选项:例如,下面的示例就是在当前工作目录下创建一个命名为 myApp 的应用。然后安装所有依赖包:启动这个应用Windows 平台

2016-12-30 22:14:26 902

原创 Node.js Express 框架

Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。使用 Express 可以快速地搭建一个完整功能的网站。Express 框架核心特性:(1)、可以设置中间件来响应 HTTP 请求。(2)、定义了路由表用于执行不同的 HTTP 请求动作。(3)、可以通过向模板传递参数来动态渲染 HTML 页面。

2016-12-30 21:39:22 980

原创 页面换肤实例

本实例通过JQuery实现页面换肤,原理是通过调用不同的样式表文件来实现不同皮肤的切换,并且需要将换好的皮肤计入cookie中,这样用户下次访问时,就可以显示永华自定义的皮肤了。这里我定义了6个样式表,代表着6中页面皮肤,选择完样式之后必须存入cookie。 页面换肤 #skin{ list-style: none;

2016-12-28 10:52:49 2700

原创 JQuery Cookie

JQuery Cookie $(function(){ var cookie_name="username"; var cookie_password="password"; if($.cookie(cookie_name)!='null'&&$.cookie(cookie_password)!='null'){ $("#username"

2016-12-25 16:30:45 688

原创 Bootstrap 模态框(Modal)与layer.prompt()冲突,layer.prompt()不起作用

报表查询条件框是Bootstrap的模态框(Modal),点击保存按钮弹出layer.prompt()不能获取焦点,主要问题是Bootstrap的模态框(Modal)的div中包含tabindex="-1"。去掉tabindex="-1"就ok了,原始程序: × 报表查询条件 修改后:

2016-12-21 17:05:32 11419 1

转载 Html的空格显示

一、使用全角空格全角空格被解释为汉字,所以不会被被解释为HTML分隔符,可以按照实际的空格数显示。二、使用空格的替代符号替代符号就是在需要显示空格的地方加入替代符号,这些符号会被浏览器解释为空格显示。空格的替代符号有以下几种:名称编号描述  不断行的空白(1个字符宽度)  半个

2016-12-18 14:37:29 698

原创 checkbox利用JQuer中 attr('checked', true)设置状态只有第一次有用

在JQuery中可以使用attr()来访问对象的属性,但是在某些时候,比如访问input的disabled属性的时候,会有些问题。在有的浏览器中,只要写了disabled属性就可以,有的则要写:disabled="disabled"。所以JQuery提供了新的方法prop()来获取这些属性,使用prop()的时候,返回值是标准属性:true/false,不会回返“disabled”或者“”。那么,

2016-12-18 11:42:20 4781

原创 layer.js

1、、基础参数  我们提到的基础参数主要指调用方法时用到的配置项,如:layer.open({content: ''})layer.msg('', {time: 3})等,其中的content和time即是基础参数,以键值形式存在,基础参数可合理应用于任何层类型中,您不需要所有都去配置,大多数都是可选的。而其中的layer.open、layer.msg就是内置方法。注意,从2.3开始,无需通过

2016-12-15 20:02:48 7220 1

原创 Template.js

template.js 一款 JavaScript 模板引擎,简单,好用。提供一套模板语法,用户可以写一个模板区块,每次根据传入的数据,生成对应数据产生的HTML片段,渲染不同的效果。https://github.com/aui/artTemplate1、特性(1)、性能卓越,执行速度通常是 Mustache 与 tmpl 的 20 多倍(性能测试)(2)、支持运行时调试,可精确定位异常模

2016-12-14 18:17:27 1318

原创 微信小程序Page中data数据操作和函数调用

Page() 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。//index.jsPage({ data: { text: "This is page data.", sliderOffset: 0,  sliderLeft: 0,  state:{        genre:[],        ge

2016-12-14 14:37:10 99767 2

原创 微信小程序页面跳转传递值

微信小程序导航有两种形式:一种是在写在js中进行跳转,另一种是写在wxml页面中进行跳转。1、js导航 (1)、wx.navigateTo(OBJECT) :保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。wx.navigateTo({ url: 'test?id=1'})获取传递的值://test.jsPage({ o

2016-12-14 14:12:29 6272

原创 不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html

出现“不在以下合法域名列表中,请参考文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-request.html”这种错误一般都是因为请求的地址错误。   wx.request(OBJECT):wx.request发起的是 HTTPS 请求。一个微信小程序,同时只能有5个网络请求连接。   OBJECT参数说明:   示

2016-12-14 13:54:36 47954

原创 微信小程序样式问题

WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式。WXSS 用来决定 WXML 的组件应该怎么显示。1、尺寸单位  rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rp

2016-12-14 13:39:26 9357

转载 request:fail错误(含https解决方案)(真机预览问题)

问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败, PC端是可以请求数据出来的 新版开发者工具增加了https检查功能;可使用此功能直接检查排查ssl协议版本问题: 可能原因:0:后台域名没有配置0.1:域名不支持https1:没有重启工具;2:域名没有备案,或是备案后不足24小时;备案未生效;感谢@小树提供的案例 3:ssl协议有问题:具

2016-12-14 10:47:27 57984 2

原创 微信小程序登录密码MD5加密

在小程序中,页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件。zepto/jquery 也无法使用,因为zepto/jquery 会使用到window对象和document对象。所以在微信小程序中不能使用jquery.md5.js对密码进行加密。下面我提供一种MD5.js加密实例,本实例先静态演示,后面再到小程序中

2016-12-14 10:32:02 18395 11

转载 23种设计模式全解析

一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

2016-08-18 14:32:35 703

原创 CSS3 过渡

CSS3中,我们为了添加某种效果可以从一种样式转变到另一个的时候,无需使用Flash动画或JavaScript。1、CSS3 过渡是元素从一种样式逐渐改变为另一种的效果要实现这一点,必须规定两项内容:    指定要添加效果的CSS属性    指定效果的持续时间实例:应用于宽度属性的过渡效果,时长为 2 秒:div{ transition: width 2s; -webkit-trans...

2016-08-17 17:06:26 700

原创 HTTP协议(超文本传输协议)

1、HTTP简介  HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。2、HTTP工作原理  HTTP协议工作于客户端-服务端架构为上。浏览器作为HTT

2016-08-15 21:04:48 2214

原创 JavaScript:同源策略

同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。示例:来自h

2016-08-15 11:13:48 956

原创 JQuery中的param()、 serialize() 和serializeArray()方法

1、param方法param() 方法创建数组或对象的序列化表示形式。序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。       语法:$.param(object,trad)object:必需。规定要序列化的数组或对象。trad:可选。布尔值,指定是否使用参数序列化的传统样式。$(document).ready(function(){

2016-08-14 12:24:09 4322

转载 offsetTop、offsetLeft、offsetWidth、offsetHeight

//获取坐标位置function getpos(e){ var t=e.offsetTop; var l=e.offsetLeft; var height=e.offsetHeight; while(e=e.offsetParent){ t+=e.offsetTop; l+=e.offsetLeft;

2016-08-12 21:26:28 4824

原创 JavaScript 面向对象编程

1、模拟重载  在Java中重载是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。由于JavaScript是弱类型,所以没有直接的机制去实现参数重载,但是我们可以通过传入的参数个数来进行模拟的重载。function Person(){ var args=arguments; if(typeof arg

2016-08-10 11:10:29 505

原创 JavaScript 对象和属性

  面向对象(Object-Oriented,OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。ECMA-262把对象定义为:“无序属性的集合,其属性可以包含基本值、对象或者函数。”严格来讲,这就相当于说对象是一组没有特定顺序的值,对象的每个属性或方法都有一个名字,而每个名字都映射到一个值。一、理解对象  创建自定义对象的最简单方式就是创建一个obj...

2016-08-10 09:15:21 1075 1

转载 Google JavaScript规范

一、JavaSrcipt语言规则1、Variables 变量所有变量都要使用var来声明。当你没有写 var, 变量就会暴露在全局上下文中, 这样很可能会和现有变量冲突.另外, 如果没有加上, 很难明确该变量的作用域是什么, 变量也很可能像在局部作用域中, 很轻易地泄漏到 Document 或者 Window 中,所以务必用 var 去声明变量.2、Constants 常量常量的形

2016-08-09 15:11:14 3161

原创 Jquery中的each()方法

each() 方法规定为每个匹配元素规定运行的函数。返回 false 可用于及早停止循环。    语法:$(selector).each(function(index,element)) function(index,element):为每个匹配元素规定运行的函数。   index - 选择器的 index 位置   element - 当前的元素(也可使用 "this" 选择

2016-08-05 11:18:08 1038

原创 JavaScript中call()、apply()和 bind()方法

每个函数都包含两个非继承而来的方法:apply()和call()。这两个方法的用途是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。首先,apply()方法接受两个参数:一个是在其中运行函数的作用域,另一个是参数数组。其中,第二个参数可以是Array的实例,也可以是arguments对象。例如:  function sum(num1,num2) {

2016-08-04 20:28:03 746

转载 Javascript闭包

一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。  var n=999;  function f1(){    alert(n);  }  f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。  fun

2016-08-04 20:04:56 416

JavaScript正则表达式迷你书

大神老姚的最新著作《JavaScript正则表达式迷你书》,让你快速学习和掌握JavaScript正则表达式,体会正则表达式真正的强大!

2018-01-31

空空如也

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

TA关注的人

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