摘要: 平常我们谈到网络缓存技术,大多是以页面为单位的,比如,新闻网站中将执行后的结果,缓存为一个静态html文件,下次访问时就直接访问这个静态页面了!减轻了服务器压力!但是,如果一个页面大部分是可静态的,但是有一部分却需要是动态的咋办呢? 如下图中画红线处,就需要动态,时时探测用户是否登录!这就可以使用动态内容缓存技术!动态内容缓存技术,总体来说就是该静态化的静态化,该动态的保持动态,最后进行组合!可行的方案大致有三种: CSI , SSI ,ESI一、CSI (Client Side Includes) 含义:通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进. 阅读全文
posted @ 2012-05-16 10:29 Lesterwang 阅读(7032) 评论(0) 推荐(0) 编辑
摘要: 字节顺序函数: 小端字节序:将低序字节存储在起始地址。(linux) 大端字节序:将高序字节存储在起始地址。(网络字节序) 举个例子:对于整数0x12345678来说,在不同的系统中存放方式如图: 正是因为网际协议采取的是大端字节序,我们在编程的时候才需要考虑网络字节许和主机字节序之间的转换。下面是四个转换函数(在某些采用大端字节序的系统里面,这四个函数被定位空宏):Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->#include <n 阅读全文
posted @ 2012-04-10 10:46 Lesterwang 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 引言:在这个年代,人们对计算机的依赖越来越强烈。据统计在18-30岁这个年龄段的年轻人每天平均8个多小时都在计算机前,使用着各种学习、工作软件,玩着多彩的游戏。当你仔细观察使用者的使用习惯时,会发现他们大部分都打开了某一款音乐播放器,听着自己喜欢的歌曲。边做事情边听音乐似乎是大多数人的一个习惯,也许你也是其中一员,在鱼龙混杂的音乐播放器市场,你选择了那一个呢?下面就几款在线播放器的特性作一下简要分析,与大家分享一下。旁白:(非在线的播放器?互联网时代你不能联网还想混不?看看下面一个草民使用音乐软件的感想)1 音乐播放器必须拥有的几把刷子:(1)高品质音乐与连接速度 这个是必须的啊,假设你听.. 阅读全文
posted @ 2012-04-10 00:52 Lesterwang 阅读(333) 评论(0) 推荐(0) 编辑
摘要: javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它是一个十分容易让人模糊的东西,在一般情况下,一个换行就会产生一个分号,但实际情况却不然,也就是说在javascript中换行可能产生分号,也可能不产生,是否自动插入分号,主要看上下行。所以即使是经验丰富的程序员,有时候也会头大。在 ECMAScript 中对分号自动插入规则也有相应的解释:空语句,变量语句,表达式语句,do-while 语句,continue 语句,break 语句,return 语句,以及 throw 语句,这些确定的ECMAScript语句必须以分号结束。这些分号可以总是明确地 阅读全文
posted @ 2012-04-09 11:10 Lesterwang 阅读(457) 评论(0) 推荐(0) 编辑
摘要: * 用法: * var args = getArgs( ); // 从 URL 解析出参数 * var q = args.q || ""; // 如果定义了某参数,则使用其值,否则给它一个默认值 * var n = args.n ? parseInt(args.n) : 10; */ var getArgs = function () { var args = new Object( ); //声明一个空对象 var query = window.location.search.substring(1); // 取查询字符串,如从 http://www.snowpeak.o 阅读全文
posted @ 2012-03-29 22:04 Lesterwang 阅读(1303) 评论(0) 推荐(0) 编辑
摘要: HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。HTTP消息报头包括普通报头、请求报头、响应报头、实体报头。每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。1、普通报头在普通报头中,有少数报头域用于所有的请求和响应消息,但并不用于被传输的实体,只用于传输的消息。eg:Cache-Control 用于指定缓存指令,缓存指令是单向的(响应中出现的缓存指令在请求中未必会出现),且是独立的(一个 阅读全文
posted @ 2012-03-21 00:21 Lesterwang 阅读(2682) 评论(0) 推荐(0) 编辑
摘要: 【libwww】官方网站:http://www.w3.org/Library/更多信息:http://www.w3.org/Library/User/运行平台:Unix/Linux,Windows以下资料来源:http://9.douban.com/site/entry/15448100/,http://zh.wikipedia.org/wiki/Libwww简介:Libwww 是一个高度模组化用户端的网页存取API ,用C语言写成,可在 Unix 和 Windows 上运行。 It can be used for both large and small applications inclu 阅读全文
posted @ 2012-03-13 00:43 Lesterwang 阅读(4651) 评论(0) 推荐(0) 编辑
摘要: rapidxml快速有以下原因:1)使用memory pool分配及释放内存。rapidxml默认每次申请64K的空间,如果当前pool中的空间不足,则会以64K空间的大小逐步增加。试想,连续申请16000次每次申请4个字节,和申请一次64K,之间谁的时间短?当然是一次时间短。2)避免多余的字符串拷贝。无疑,字符串拷贝是非常耗时的,rapidxml为了追求rapid的特点,在内部拷贝时都只使用浅拷贝(与深拷贝相对:只是拷贝指针的值,而不是拷贝指针指向的内容)。不过也由此,使用者在保存xml文件时,需要注意一点:当将rapid写入到内存之前,应保证浅拷贝时指针指向的内容没有发生改变。否则,你会发 阅读全文
posted @ 2012-03-04 13:55 Lesterwang 阅读(1344) 评论(0) 推荐(0) 编辑
摘要: Javascript有两个种定义Function的方法非常常用。例如程序代码functiona(){alert("a")}vara=function(){alert("a")}虽然两个种方式定义出来的function调用的时候结果一样,但是中间还是有区别的。举个简单的例子,假如我们要重定义a(),而且新的方法要继承a()里面所有方法并且进行其他扩展的话。就可以明显看到这两个方式的区别了。1.首先,我们先建立一个临时的变量来存储a()程序代码varb=a;然后,重新定义a()第一种方式:程序代码functiona(){b();alert("ok& 阅读全文
posted @ 2012-03-03 22:39 Lesterwang 阅读(214) 评论(0) 推荐(0) 编辑
摘要: typedef struct _hdf HDF; struct _hdf { int link; int alloc_value; char *name; int name_len; char *value; struct _attr *attr; struct _hdf *top; struct _hdf *next; struct _hdf *child; /* the following fields are used to implement a cache */ struct _hdf *last_hp; struct _hdf *la... 阅读全文
posted @ 2012-02-29 00:25 Lesterwang 阅读(609) 评论(0) 推荐(0) 编辑