- 浏览: 425871 次
- 性别:
- 来自: 广州
最新评论
-
xiaomuxingren:
你好,请问update-alternatives --inst ...
JDK8安装及jenkins安装 -
wahahachuang8:
我觉得这种东西自己开发太麻烦了,就别自己捣鼓了,找个第三方,方 ...
HTML5 WebSocket -
晨曦的朝阳:
刚好有需求,学习一下!
MySql主从配置 -
mfkvfn:
这是恶意的商业竞争呀
解决 android 微信5.0及后续版本无法打开电话号码的问题 -
fwyhf:
require('./monitor/module_liste ...
NodeJS Server 进程自动重启
文章列表
同时参考的是W3C RFC2616规范中的
HTTP1.1/HEADER说明
利用 HTTP Cache来优化网站
缓存控制头 Cache-Control
Cache-Control 是最重要的规则。这个字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令。这些指令指定用于阻止缓存对请求或响应造成不利干扰的行为。这些指令 通常覆盖默认缓存算法。缓存指令是单向的,即请求中存在一个指令并不意味着响应中将存在同一个指令。
cache-control 定义是:Cache-Control = “Cache-Control” “:” cache-directive。
表 1 展示了 ...
压缩JS,CSS,图片
合并图片
使用gzip
减少请求数
缓存
CSS放顶部,JS放底部
减少cookie
使用CDN
尽量少使用iframe
压缩JS,CSS
YUICompressor 使用Google Closure压缩JS和CSS
YUICompressor使用方法:
引用语法: java -jar yuicompre ...
JavaScript异常一般可通过try catch捕获,但try catch对于延时执行的代码无法进行捕获,此时只能依靠window.onerror捕获,从中拿到错误信息。同时需要将错误信息进行统一的处理,如记录链接,并将该链接发生的错误进行统计。
try catch 和 window.onerror异常捕获已在另一篇文章说基本讲解,在此讲解捕获异常信息的详细。
开发人员比较关注:(1)当前是哪个浏览器;(2)错误信息;(3)调用堆栈;
浏览器信息的获取
浏览器信息存储于navigator.userAgent中
var ua ...
异步I/O处理过程
异步I/O处理的优点
I/O密集型计算(进程所执行的I/O操作比执行的处理操作更多)的任务中,使用异步I/O的方式,可以提高CPU对应用程序处理的吞吐率,应用程序无需进行I/O阻塞。保证在I/O处理时,仍能进行应用程序的处理
异步I/O的缺点
如果程序的I/O操作频繁并且短暂,则I/O线程切换代价较大,并且异步I/O库处理有一定的开销(磁盘磁头的寻址切换等),异步I/O对程序的写法有一定的门槛。
异步I/O的应用场景
NodeJS的单进程,单线程模型。为了能同时处理更多的请求,I/O操作,必需使用异步处理的方式,NodeJS采用的是libeio的实 ...
Cluster 集群
一个独立的Node对象运行在单个线程中。为了更好的利用多核心系统的,用户会尝试启动多个Node处理进程,提供更好的服务。(说明:单个线程总是运行在一个核心上面,cluster是为了更好的利用CPU,充分利用多核CPU的资源)
你可以使用cluster模块,非常容易的创建共享服务端口的多个网络处理应用程序。
(在多个进程中,需要考虑全局变量等的存储及访问)
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length; ...
背景:
NodeJS的特点是单进程,事件驱动,非阻塞式IO编程,当主进程抛异常挂掉,整个NodeJS Server就会停止。
对当前的NodeJS进程进行监控非常重要,NodeJS的进程的停止时,能在指定时间内重启动,继续提供服务。
思路:
1.起一个守护进程,用于与各子进程(虚拟进程)进行心跳通信,官运亨通护进程监测子进程是否有回应,若三次连接后没有回应,则将该进程进行重启。
2.子进程与守护进程进行心跳通信,若守护进程不存在,则子进程自动退出。
示例图:
守护进程:bootstrap.js
/**
* @author wubocao
...
NodeJS常用调试工具包括两种:
1.NodeJS内置命令行调试工具
2.chrome浏览器页面调试
NodeJS内置命令行调试
var http = require('http');
var url = require('url');
http.createServer(function (req, res) {
var path = url.parse(req.url).pathname;
debugger;
var a = "bbb";
var b = "ccc";
...
NodeJS中的Path对象,用于处理目录的对象,提高开发效率。
用NodeJS的Path命令,与使用Linux下的shell脚本命令相似。
引入path对象
var path = require('path');
比较实用的方法:
格式化路径 path.normalize(p)
特点:将不符合规范的路径格式化,简化开发人员中处理各种复杂的路径判断
示例:
path.normalize('/foo/bar//baz/asdf/quux/..');
// returns
'/foo/bar/baz/asdf'
路径联合 path.join([path1], [path2], [.. ...
jQuery中的support对象
- 博客分类:
- jQuery
jQuery.support是为了替换jQuery.browser而来。
browser带着版本号的信息,浏览器有更新(IE10)时,很多以前的判断条件都不生效,所以更改为对特性的支持,以此来区分浏览器的不同。
(function( jQuery ) {
jQuery.support = (function() {
var support,
all,
a,
select,
opt,
input,
fragment,
...
JavaScript正则
- 博客分类:
- JS基础
正则表达式的常用功能
1、测试字符串的模式
2、查找子字符串
3、字符串替换
正则表达式对象:RegExp
新建正则表达式对象的两种方式:
(1).new RegExp(pattern, mode);
参数说明:
pattern 模式说明,如 “*name”
mode包含三个标志符:g(全文查找),i(忽略大小写),m(多行查找)
(2) var reg = /pattern/ig
常用功能
1、测试字符串模式
reg.test(str)
测试str是否符合pattern表达式模式
2、查找子字符串
reg.exec(str)
返回查找子字符串的信息,位置,子串内容
3、字符串替换
str. ...
1.闭包允许访问存在外部变量的最终值。
最终值:指在闭包执行时,所能访问到的外部变量的最后的值:
var users = [];
for (var i = 0; i < 5; i++) {
users[i] = {};
users[i]['printAge'] = function () {
console.log(i);
};
}
for (var j = 0; j < users.length; j++) {
users[j].printAge(); }
代码运行结果:
外部变量i的 ...
一、命令分类
类定义
@class 类型定义
@version 版本信息
@author 作者
@constructor 构造方法
@description 描述
@example 示例
@param
/**
* @name Tabs
* @author Halen
* @class 页签组件
*
* @constructor
* @description 构造函数.
* @param p
*/
Tabs = function(p) {
} ...
1.iframe内存泄漏
将iframe的属性设置为src,并手工将其从DOM树上移除,然后调用CollectGargabe()方法并不能将避免iframe的内在泄漏。
需要清空iframe中的内容:
var frame = $('iframe');
frame[0].contentWindow.document.write(''); //清空iframe的内容
frame[0].contentWindow.close(); //避免内存泄漏
frame.remove(); // 删除iframe
外文资料:http://msdn.microsoft.com/en-us ...
表单元素类型
常用:tel, email, date, url, search, range, datetime
Chrome26.0浏览器下测试
email: 只做最基本的校验 *@*.*
url: 链接类型的判断 *:*(居然只做冒号的校验,输入a:a可正常提交
date: chrome日期类型控件
time: 支持小时和分钟的显示
week: 一年中的第几周, value表示为2013-W16(一年中的第16周)
month: 一年中的第几月, value表示为2013-04
tel: chrome浏览器暂未支持tel标签,应该是有手机和固话的原因
range: range支持是1-1 ...
1.WebSocket的优缺点
大并发时传输量的减少,网络负载对比
图片来自:http://www.ibm.com/developerworks/cn/web/1112_huangxa_websocket/
时延减半:
图片来自:http://kb.cnblogs.com/page/58908/
缺点是现在规范的支持还不是很完善,浏览器 ...