- 博客(27)
- 收藏
- 关注
nginx gizp 加快页面加载速度
在很多的网站中,都会用到第三方插件,例如jquery等,但是第三方插件的引入往往会是页面的加载时间加长,除了优化代码结构外,还可以配置nginx gizp 将文件压缩后发送给浏览器 http{ ... gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_comp_lev...
2015-07-28 21:56:53
227
原创 node 异步处理操作 promise
nodejs 是非阻塞的,我理解的非阻塞就是前后两个完成不同功能的代码模块,不一定第一个代码模块完成后,第二个代码模块才执行,但是许多时候我们需要控制两个代码的执行顺序,promise能够很好的控制异步操作的先后顺序,他是通过当异步操作完成后执行回调函数实现。 使用方法在package.json中加入 'promise':"*" 执行 npm install 加载 pro...
2015-07-12 18:42:28
205
原创 js 对象继承
总结一下,对象继承的几种方式 1.构造函数绑定function Person(){ this.speices ="人类"}function Women (name){ Person.apply(this); //or Rerson.call(this) 如果父类定义需要传参 参照apply call 传参方式 this.name = name; ...
2015-07-12 17:27:12
148
原创 nodejs 数据库连接 mongodb mysql
1.mysql 连接 package.json中dependencies加入 "mysql":"~2.7.0" 执行 npm install 在config 下创建文件 database.js var mysql = require('mysql');var connection = mysql.createConnecti...
2015-07-09 23:08:53
155
原创 node 环境搭建
1.安装nvm git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm source ~/.nvm/nvm.sh 在 ~/.bashrc, ~/.profile, or ~/.zshrc文件内写入source ~/.nvm/nvm.sh2.安装nodenvm install 0....
2015-07-09 22:00:45
125
js this绑定 call apply bind 用法
一直以来虽然经常用到call,apply,bind三种方法,但是对其具体的用法区别总是模模糊糊,今天终于查明白了。 1.call 首先看个例子var name = "czm"var me = { name: 'lgs'};var you = { name: 'cy'}; function getUserName() {...
2015-07-08 22:51:46
150
前台代码模块化 seajs
随着程序的增加,前台代码变的越来越复杂,重复的js 模块会变多,文件间的依赖也会变复杂,会经常出现引用了一个文件就忘了它所依赖的文件是哪个。seajs 很好的解决了这个问题,它属于模块级管理,能搞让我们引用文件时减少文件间的依赖。 如果用过nodejs 的话,会发现seajs的用法和nodejs的模块语法相似,使用简单 1.下载seajs 文件,下载地址http:...
2015-07-07 22:16:00
130
原创 js 实现 观察者模式 相互监听
观察者模式( 又叫发布者-订阅者模式 )应该是最常用的模式之一。观察者主要让订阅者与发布者解耦,发布者不需要知道哪些模块订阅了这个主题,它只管发布这个主题就可以了,同样订阅者也无需知道那个模块会发布这个主题,有利于代码的模块化,减少重复代码,增加代码的可维护性。当然一个发布者同时也可以是个发布者。1.创建一个观察者 function ObserverBase(){ this...
2015-07-07 19:58:42
241
ruby on rails 生成验证码 easy_captcha
运行环境,Mac 、ubuntu rails 4.2.1 大部分的网站的都会考虑自身的安全,验证码检测成为了必不可少的流程,相对于node,ruby 对验证码的实现要简单方便很多。1.引入gem包gem 'easy_captcha', github: 'phatworx/easy_captcha'gem 'rmagick' ...
2015-06-08 21:44:29
300
ruby on rails 文件下载send_file、send_data
运行环境,Mac 、ubuntu rails 4.2.1昨天刚做了rails文件上传,今天要做下载文件,没想到so easy 啊1。页面添加下载链接= link_to '下载', admin_file_download_path(resource.id) 2.controller里def file_download res...
2015-06-05 12:36:14
1275
原创 ruby on rails 文件、图片上传
运行环境,Mac 、ubuntu rails 4.2.1以前做过几次图片,文件上传的功能,但是每次做的时候都要重新想怎么做,汗。。。,还是记下来吧。 其他主流上传gem包carrierwave和paperclip1.在页面添加form表单上传图片或者文件=form_for :file ,:url=> '/add_excel' do |...
2015-06-03 22:21:56
619
原创 mysql 不存中文
运行环境 ubuntu :0.14.04 mysql :5.5.43-0ubuntu0.14.04.1最近在写一个项目,用到mysql数据库,第一次用,刚开始的时候用英文测试但是改用中文测试的时候,直接挂掉了。下面是解决的办法 1.进入mysql 运行 SHOW VARIABLES LIKE 'character%';查看mysql 的支持的编...
2015-06-03 13:25:24
122
ruby on rails 用户密码加密
运行环境: rails 4.2.1 ruby 2.0.0p481 mysql(支持多种数据库)在实际的项目中,需要注意对用户隐私的保护,这往往需要对用户的密码进行加密,下面是对其中一种密码加密库使用的介绍 1. 在Gemfile中引入gem包'bcrypt-ruby '指定版本号,我使用的版本是3.1.5g...
2015-06-02 22:47:00
623
原创 可视化编程 blockly 入门
<script src="blockly_compressed.js"></script> <script src="blocks_compressed.js"></script> <script src="javascript_compressed.js"></script&a
2015-04-09 18:34:16
624
原创 javaScript工厂模式
工厂模式定义一个用于创建对象的接口,var PaperFloderCreatorFactory = function (user, paths, pathModel) {}; 将要创建不同的类可以看作模具,用以创建不同的实例类。PaperFloderCreatorFactory.Creators = { 'spec_html': paperHtmlCreator...
2015-04-02 21:28:29
101
原创 node 测试 总结
测试数据分离(这样数据发生改变时,不影响测试数据,也能保证测试的整洁,同时为开发,提供准备数据的规范) 测试数据种类齐全(保证各种数据都能正常运行) 将单元测试和集成测试,端到端测试分离, 测试点尽量全面,一个测试的expect可以多写几个尽量具体,可以保证此次测试的准确性,可以减少bug 数据的准备尽量不要放到测试用例...
2015-03-26 22:07:19
95
原创 文字不可选浏览器兼容性
HTML、CSS禁止选择文字,针对IE、FF、Chrome等<div unselectable="on" style="-moz-user-select:none;-webkit-user-select:none;" onselectstart="return false;">你选不了我,unselectable: IE/Opera, -moz-user-sel...
2014-07-01 10:49:18
110
原创 window.event 兼容行
由于火狐服务器不支持window.event接口,想获取event事件可以用下面方法function getEvent() { if (document.all) return window.event; func = getEvent.caller; while (func != null) { var arg0 = func.a...
2014-07-01 10:47:51
123
Sqlite
1.安装sqlite数据库 1.首先要新建一个数据源: (1)database右击对话框空白处,new->datasource (2)下载驱动到本工程的db下 (3)填写URL地址:jdbc:sqlite://“本工程bd的据对路径”/development.sqlite3 2.rails g model User 在bd里的生成的新...
2014-01-22 11:52:12
96
原创 rails 分页显示
@local=10#每页显示数量@count=User.count#总数量 @offset=0#初始偏移量,总便宜量为@offset*@localif params[:id]!=nil @offset=@local*params[:id].to_i #根据参数修改偏移量end@users = User.find(:all, :limit=>@local, :offset=>@of...
2013-12-31 12:53:11
140
三种数据结构重构总结
三种数据结构重构总结: 第一种数据结构,将数据存到一个大的数组里,这样结构清晰在匹配信息时有很大的优势存储上层信息方便,但是当数组里最低层的信息发生改变时提取信息并保存需要多层调用。做个这个数据库的重构后我感觉建立设计数据机构时不宜数据的层数太深,会给数据的存取带来不便; 第二种数据结构:相对于第一种数据结构,它是将数据作为一个对象里面的属性储存的,并存储当...
2013-12-18 16:51:49
578
原创 重构总结
重构总结:重构是将面对过程的程序转换为面向对象的,在代码中提取出相同的部分,放到JS文件中,方便以后的维护。在重构时首先要考虑整个过程中可以分为几个对象,对象的属性有哪些,根据过程找到各个对象的函数,其中对象的添加、保存可以写成实例函数,在需要保存数据的时候就可以新建一个实例对象,然后调用实例方法就可以省去很多数据之间的传送。在control层要主要的是对函数的的调用,不应该有逻辑分析,对于按...
2013-12-18 15:29:16
82
竞价分析思路
竞价分析开发思路:1.通过报名信息与竞价信息的匹配找到对应竞价信息的姓名并将其存入localstorage里在页面中显示时,将其中的价格信息隐藏。当点击竞价信息结束时,通过_.sort来将存储的信息数组排序,具体方法是:var a= BidJsonMessage.get_name_message(); var b= _.sortBy(a,function(para){ ...
2013-12-10 09:25:32
176
第二张卡开发所学习的内容
1.怎么将页面间的参数传送会控制器:定义一个modlez在控制器上使用,当为参数为list in newlist的时候可以将list 作为参数返回控制器中;2.页面的自动刷新可以应该用触发的时间,如短信接受时触发,也可以自动时间的触发,点击按钮的触发。其中短息接收的触发方法是:1,在要触发的页面上标注一个id。2在信息的处理页上定义刷新函数。go_to_act_detail_page_by_...
2013-12-02 10:20:37
67
第三张卡开发思路
第三张卡我先考虑的第一个是怎么样在点击开始时,1.创建一个新的竞价活动,并让活动名递增,由于点击开始时会页面跳转不能用简单的count+1解决,我把提取list的长度进行解决。2.点击开始时要进行页面间的跳转我需要存储竞价的活动名及竞价名,并通过与activity_name+"jj"匹配再从其中找到竞价名相匹配的信息提取并在竞价列表中显示出来。3.当竞价名列表的颜色通过配对activit...
2013-12-02 10:13:34
70
第二张卡的开发思路
在开发卡二时,我首先考虑的是如何将短信信息提取并存储到本地内存中。当所需信息放到内存后,我要考虑的是怎么将信息在不同活动的报名页面中显示出来。首先我先将所打开的活动的名称,存到数组,然后根据活动名称从内存中提取信息。在内存中将各个活动的报名信息存到,分别存到以各个活动名称为关键字的内存中。这样就可以在各个不同的页面中读取不同的报名数据。我又在内存中设置了一个内存存储正在开始的报名的...
2013-11-26 09:14:02
188
localstorage 的用法
localstorage 是本地储存,是连接各个页面之间的纽带,一个页面的数据只用存储到localstorage里才能被别的页面使用,而页面的存储到localstorage里的数据为字符串不能直接被页面使用需要进行数据之间的转化例如;var eventlist=JSON.parase(localstorage.getItem("activity"))||[];//读取 localsto...
2013-11-25 14:06:57
104
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人