- 浏览: 23133 次
- 性别:
最新评论
文章列表
在很多的网站中,都会用到第三方插件,例如jquery等,但是第三方插件的引入往往会是页面的加载时间加长,除了优化代码结构外,还可以配置nginx gizp 将文件压缩后发送给浏览器
http{
...
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 5;
gzip_types text/plain image/jpeg application/x-javascript application/javascript text/css ...
nodejs 是非阻塞的,我理解的非阻塞就是前后两个完成不同功能的代码模块,不一定第一个代码模块完成后,第二个代码模块才执行,但是许多时候我们需要控制两个代码的执行顺序,promise能够很好的控制异步操作的先后顺序,他是通过当异步操作完成后执行回调函数实现。
使用方法
在package.json中加入
'promise':"*"
执行 npm install 加载 promise 模块
在需要的文件中引入模块
var Promise = require("promise");
例子
function i ...
总结一下,对象继承的几种方式
1.构造函数绑定
function Person(){
this.speices ="人类"
}
function Women (name){
Person.apply(this); //or Rerson.call(this) 如果父类定义需要传参 参照apply call 传参方式
this.name = name;
this.sex = "women"
}
console.log( new Women("cy").speices) //=> ...
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user: 'root', //用户名
password: '', // ...
1.安装nvm
git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm
source ~/.nvm/nvm.sh
在 ~/.bashrc, ~/.profile, or ~/.zshrc文件内写入source ~/.nvm/nvm.sh
2.安装node
nvm install 0.10.26 //安装指定版本node
nvm alias default 0.10.26 //并将其设定为默认版本
3. 安装mongodb
1.下载mongodb 地址 https: ...
一直以来虽然经常用到call,apply,bind三种方法,但是对其具体的用法区别总是模模糊糊,今天终于查明白了。
1.call
首先看个例子
var name = "czm"
var me = {
name: 'lgs'
};
var you = {
name: 'cy'
};
function getUserName() {
console.log(this.name);
}
getUserName(); //=>czm
getUserName.call(me ...
随着程序的增加,前台代码变的越来越复杂,重复的js 模块会变多,文件间的依赖也会变复杂,会经常出现引用了一个文件就忘了它所依赖的文件是哪个。seajs 很好的解决了这个问题,它属于模块级管理,能搞让我们引用文件时减少文件间的依赖。
如果用过nodejs 的话,会发现seajs的用法和nodejs的模块语法相似,使用简单
1.下载seajs 文件,下载地址http://seajs.org/docs/#downloads
2.将文件放到工程文件里,并在页面上引用
<script type="text/javascript" ...
观察者模式( 又叫发布者-订阅者模式 )应该是最常用的模式之一。观察者主要让订阅者与发布者解耦,发布者不需要知道哪些模块订阅了这个主题,它只管发布这个主题就可以了,同样订阅者也无需知道那个模块会发布这个主题,有利于代码的模块化,减少重复代码,增加代码的可维护性。当然一个发布者同时也可以是个发布者。
1.创建一个观察者
function ObserverBase(){
this.listeners = {};
}
ObserverBase.prototype.register_listener = function(event,listener){
if( ...
运行环境,Mac 、ubuntu
rails 4.2.1
大部分的网站的都会考虑自身的安全,验证码检测成为了必不可少的流程,相对于node,ruby 对验证码的实现要简单方便很多。
1.引入gem包
gem 'easy_captcha', github: 'phatworx/easy_captcha'
gem 'rmagick'
我试过直接使用,gem 'easy_captcha' 但是版本不对,可以自己试试
2.安装包
bundle install
期间可以出问题, rmagick 的依赖包没有,解决办法
...
运行环境,Mac 、ubuntu
rails 4.2.1
昨天刚做了rails文件上传,今天要做下载文件,没想到so easy 啊
1。页面添加下载链接
= link_to '下载', admin_file_download_path(resource.id)
2.controller里
def file_download
resource = Resource.find(params[:format])
send_file "#{Rails.root}/public#{resource[:file_path ...
运行环境,Mac 、ubuntu
rails 4.2.1
以前做过几次图片,文件上传的功能,但是每次做的时候都要重新想怎么做,汗。。。,还是记下来吧。
其他主流上传gem包carrierwave和paperclip
1.在页面添加form表单上传图 ...
运行环境 ubuntu :0.14.04
mysql :5.5.43-0ubuntu0.14.04.1
最近在写一个项目,用到mysql数据库,第一次用,刚开始的时候用英文测试但是改用中文测试的时候,直接挂掉了。下面是解决的办法
1.进入mysql 运行 SHOW VARIABLES LIKE 'character%';查看mysql 的支持的编码格式为
+--------------------------+------------------------------------------------------+
| Variable ...
运行环境: rails 4.2.1 ruby 2.0.0p481 mysql(支持多种数据库)
在实际的项目中,需要注意对用户隐私的保护,这往往需要对用户的密码进行加密,下面是对其中一种密码加密库使用的介绍
1. 在Gemfile中引入gem包'bcrypt-ruby '指定版本号,我使用的版本是3.1.5
gem 'bcrypt-ruby', '~> 3.1.5'
2.运行bundle install ,安装gem
3.modle 里原来的password(如果是已经建立了该字段)需要把对 ...
可视化编程 blockly 入门
- 博客分类:
- blockly
<script src="blockly_compressed.js"></script>
<script src="blocks_compressed.js"></script>
<script src="javascript_compressed.js"></script>//支持javascript代码转化
<script src="msg/js/en.js"></script>//支持的语言 ...
javaScript工厂模式
- 博客分类:
- js
工厂模式定义一个用于创建对象的接口,
var PaperFloderCreatorFactory = function (user, paths, pathModel) {
};
将要创建不同的类可以看作模具,用以创建不同的实例类。
PaperFloderCreatorFactory.Creators = {
'spec_html': paperHtmlCreator,
'lib': paperLibCreator,
'practices': paperPracticesCreator,
'specs': paperPracticesC ...