前端小技巧 (2)

1.BOM DOM

DOM:文档对象模型 document

描述了处理网页内容的方法和接口

由于DOM的操作对象是文档,所以DOM和浏览器没有直接关系。


BOM:浏览器对象模型

描述了与浏览器进行交互的方法和接口

由navigator、history、screen、location、window五个对象组成的,最根本对象是window

用来获取或设置浏览器的属性、行为,例如:新建窗口、获取屏幕分辨率、浏览器版本号等

浏览器的标签页、地址栏、搜索栏、菜单栏、滚动条等。


2.java

  • 问题 数据库查询方法
StringBuffer bf = new StringBuffer();

bf.append("sql");

[].setSqlText(bf.toString());

result = this.getDateAccessManager().queryForList(tabledef,[],[传值]);

Collections.shuffle();//打乱顺序
  • 多数据源
  • spring Boot框架

3.sql

随机查询多少条数据

selet * from [] where ... order by rand() fetch first [条数] rows only


4.es6 和 noode 问题

模块化开发 import

node 回调函数


router.toute('').get();

router.toute('').post();


router.route(url).post(function(req,res,next){
    var value = req.body.key;
    req.write(post_data);
    req.end();
})

$.post(url,data,function(result){
    console.log(result);
})

router.route(url).get(function(req,res,next){
    req.session.codeStatus = '200';
    req.originalUrl 
    req.ip
    res.render(url)
    next()
})

5.express 框架

var express = require('express);
var app = express();
var router = express.Router();

node express 框架 next()

express中间件函数的时候都会将第三个参数定义为next

定义路由中间件的时候函数的第三个参数next和我们定义非路由中间件的函数的第三个参数next不是同一个next

6.npm install -save 和 -save-dev

npm install moduleName # 安装模块到项目目录下

npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。

npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。

npm install -save-dev moduleName # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

npm install moduleName 命令

  1. 安装模块到项目node_modules目录下。
  2. 不会将模块依赖写入devDependencies或dependencies 节点。
  3. 运行 npm install 初始化项目时不会下载模块。
    npm install -g moduleName 命令
  4. 安装模块到全局,不会在项目node_modules目录中保存模块包。
  5. 不会将模块依赖写入devDependencies或dependencies 节点。
  6. 运行 npm install 初始化项目时不会下载模块。
    npm install -save moduleName 命令
  7. 安装模块到项目node_modules目录下。
  8. 会将模块依赖写入dependencies 节点。
  9. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
  10. 运行npm install --production或者注明NODE_ENV变量值为production时,会自动下载模块到node_modules目录中。
    npm install -save-dev moduleName 命令
  11. 安装模块到项目node_modules目录下。
  12. 会将模块依赖写入devDependencies 节点。
  13. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
  14. 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。

7.node zookeeper

8.Browserify和Webpack工具

Gulp和Browserify

9.修改npm的registry为淘宝镜像(npm.taobao.org)

通过config命令
npm config set registry https://registry.npm.taobao.org 

npm info underscore

命令行指定
npm --registry https://registry.npm.taobao.org info underscore 

编辑 ~/.npmrc 加入下面内容

registry = https://registry.npm.taobao.or

搜索镜像: https://npm.taobao.org

建立或使用镜像,参考: https://github.com/cnpm/cnpmjs.org

10. 文件 xx.jade 文件

基于 node html 模板引擎

11.es6 新特性

 模块 Modules(Import)

// ES6
function Add(x) {
  return x + x;
}

export default Add;

// ES5
function Add(x) {
  return x + x;
}

module.exports = Add;

箭头函数(和this有关系)this 指向

$.ajax({ type: 'POST', url: '/api/characters', 
        data: { name: name, gender: gender } })
  .done(function(data) {
    this.setState({ helpBlock: data.message });
  }.bind(this))
  .fail(function(jqXhr) {
    this.setState({ helpBlock: jqXhr.responseJSON.message });
  }.bind(this))
  .always(function() {
    this.setState({ name: '', gender: '' });
  }.bind(this));
  
  
  -------------------------------------
  
  $.ajax({ type: 'POST', url: '/api/characters',
       data: { name: name, gender: gender } })
  .done((data) => {
    this.setState({ helpBlock: data.message });
  })
  .fail((jqXhr) => {
    this.setState({ helpBlock: jqXhr.responseJSON.message });
  })
  .always(() => {
    this.setState({ name: '', gender: '' });
  });

解构赋值 var & let

语法糖 class
// ES6
class Box {
  constructor(length, width) {
    this.length = length;
    this.width = width;
  }
  calculateArea() {
    return this.length * this.width;
  }
}

let box = new Box(2, 2);

box.calculateArea();

// ES5
function Box(length, width) {
  this.length = length;
  this.width = width;
}

Box.prototype.calculateArea = function() {
  return this.length * this.width;
}

var box = new Box(2, 2);

box.calculateArea();


ES6中还可以用extends关键字来创建子类

class MyComponent extends React.Component {
  // Now MyComponent class contains all React component methods
  // such as componentDidMount(), render() and etc.
}

12.AST 抽象语法树

13.SDK

14.linux / windows 端口映射

windows

host 文件 配置虚拟域名 IP 域名

linux

iptables -t 表名 <-A/I/D/R> 规则链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作

iptables -t nat -A PEWROUTING -p tcp -d [IP] --dport [端口] -j REFIRECT --to-port [端口]

  • -t<表>:指定要操纵的表;
  • -A:向规则链中添加条目;
  • -D:从规则链中删除条目;
  • -i:向规则链中插入条目;
  • -R:替换规则链中的条目;
  • -L:显示规则链中已有的条目;
  • -F:清楚规则链中已有的条目;
  • -Z:清空规则链中的数据包计算器和字节计数器;
  • -N:创建新的用户自定义规则链;
  • -P:定义规则链中的默认目标;
  • -h:显示帮助信息;
  • -p:指定要匹配的数据包协议类型;
  • -s:指定要匹配的数据包源ip地址;
  • -j<目标>:指定要跳转的目标;
  • -i<网络接口>:指定数据包进入本机的网络接口;
  • -o<网络接口>:指定数据包要离开本机所使用的网络接口。

表名包括

  • raw:高级功能,如:网址过滤。
  • mangle:数据包修改(QOS),用于实现服务质量。
  • net:地址转换,用于网关路由器。
  • filter:包过滤,用于防火墙规则。

规则链名包括:

  • INPUT链:处理输入数据包。
  • OUTPUT链:处理输出数据包。
  • PORWARD链:处理转发数据包。
  • PREROUTING链:用于目标地址转换(DNAT)。
  • POSTOUTING链:用于源地址转换(SNAT)。

动作包括:

  • accept:接收数据包。
  • DROP:丢弃数据包。
  • REDIRECT:重定向、映射、透明代理。
  • SNAT:源地址转换。
  • DNAT:目标地址转换。
  • MASQUERADE:IP伪装(NAT),用于ADSL。
  • LOG:日志记录。

清除已有iptables规则

  • iptables -F
  • iptables -X
  • iptables -Z

开放指定的端口

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
允许本地回环接口(即运行本机访问本机)

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
允许已建立的或相关连的通行

iptables -A OUTPUT -j ACCEPT
允许所有本机向外的访问

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许访问22端口

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
允许访问80端口

iptables -A INPUT -p tcp --dport 21 -j ACCEPT
允许ftp服务的21端口

iptables -A INPUT -p tcp --dport 20 -j ACCEPT
允许FTP服务的20端口

iptables -A INPUT -j reject

禁止其他未允许的规则访问

iptables -A FORWARD -j REJECT

禁止其他未允许的规则访问

屏蔽IP

iptables -I INPUT -s 123.45.6.7 -j DROP
屏蔽单个IP的命令

iptables -I INPUT -s 123.0.0.0/8 -j DROP
封整个段即从123.0.0.1到123.255.255.254的命令

iptables -I INPUT -s 124.45.0.0/16 -j DROP
封IP段即从123.45.0.1到123.45.255.254的命令

iptables -I INPUT -s 123.45.6.0/24 -j DROP
封IP段即从123.45.6.1到123.45.6.254的命令是

查看已添加的iptables规则

iptables -L -n -v
Chain INPUT (policy DROP 48106 packets, 2690K bytes)
pkts bytes target     prot opt in     out     source               destination         
5075  589K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
191K   90M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
1499K  133M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4364K 6351M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
6256  327K ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy ACCEPT 3382K packets, 1819M bytes)
pkts bytes target     prot opt in     out     source               destination         
5075  589K ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0 

删除已添加的iptables规则

将所有iptables以序号标记显示,执行:

iptables -L -n --line-numbers

比如要删除INPUT里序号为8的规则,执行:

iptables -D INPUT 8
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343