`
文章列表
   在很多的网站中,都会用到第三方插件,例如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表单上传图 ...

mysql 不存中文

运行环境 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(如果是已经建立了该字段)需要把对 ...
<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 ...
Global site tag (gtag.js) - Google Analytics