摘要: 一、JSON和JSONP JSONP的全称是JSON with Padding,由于同源策略的限制,XmlHttpRequest只允许请求当前源(协议,域名,端口)的资源。如果要进行跨域请求,我们可以通过使用html的script标记来进行跨域请求,并在相应中返回要执行的script代码,其中可以直接使用JSON传递javascript对象。这种跨域的通讯方式成为JSONP。 由此我们可以看出两者的区别: json: 一种轻量级的数据格式。 jsonp:为实现跨域,而采用的一种脚本注入方法。 备注:要了解更多json,可以参见我原先写的一篇介绍json的文章:《JSO... 阅读全文
posted @ 2012-03-20 23:41 lengyuhong 阅读(9694) 评论(0) 推荐(2)
摘要: 刚看到这个标题的时候,大家会觉得比较奇怪,nodejs是一门脚本语言,它又没有“指针”这个数据结构,怎么能操作指针呢 ?这个问题关键就是nodejs中的Buffers这个数据结构。 背景 自己做的一个项目需要是从网站上下载一个图片,然后用libjpeg这个C类库对图像进行操作。程序架构是用nodejs写一个主运行程序,用C++扩展来调用libjpeg类库并实现底层的算法。libjpeg的8d版本中已经有两个接口解析图片信息,分别是从文件中读取和从内存中读取。EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE ... 阅读全文
posted @ 2012-03-02 23:55 lengyuhong 阅读(3817) 评论(0) 推荐(3)
摘要: javascript中函数定义通常有两种方法: 1. 普通的函数定义:function f1 (){} 2. 变量式函数定义:var f2 = function(){} 还有一种定义方法是new Function,由于这种方法并不常用,这里就不做解释了。 那这两种定义方法有什么不同呢?难道仅仅只是样子不同而已嘛?当然不是这样,我们来看个具体的例子吧,大家觉得以下代码的执行结果是什么?if (1 === 1) { tellAlert();} else{ function tellAlert(){ alert('hello'); }} 执行结果是:会提示“hello”... 阅读全文
posted @ 2012-02-29 20:02 lengyuhong 阅读(1977) 评论(7) 推荐(1)
摘要: 一、简单启动举例:./mongod --dbpath /var/lib/mongodb/ --port 12345这中方法相对比较简单,这里不做具体的阐述,查看下面的文档即可http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo二、master-slave 1. 运行脚本脚本:$ cd ~/apps$ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.8.3.tgz$ tar zxvf mongodb-linux-x86_64-1.8.3.tgz$ m. 阅读全文
posted @ 2012-02-21 18:05 lengyuhong 阅读(2269) 评论(0) 推荐(0)
摘要: nodejs对文件的读写还是相当灵活的,可以根据不同的场景来选择不同的方法,具体可以参见:Nodejs fs 一.直接操作文件 最简单的两个fs.readFile和fs.writeFile 举例:这个程序的功能是将一个比较大json格式的文件转换成你想自己要格式的文件。var fs = require('fs');fs.readFile('./json.json',function(err,data){ if(err) throw err; var jsonObj = JSON.parse(data); var space = ' '; var 阅读全文
posted @ 2012-02-18 20:50 lengyuhong 阅读(17584) 评论(6) 推荐(5)
摘要: 一、V8简介 google code上对它的解释如下: V8 is Google's open source JavaScript engine. V8 is written in C++ and is used in Google Chrome, the open source browser from Google. V8 implements ECMAScript as specified inECMA-262, 5th edition, and runs on Windows (XP or newer), Mac OS X (10.5 or newer), and Linu.. 阅读全文
posted @ 2012-02-17 00:06 lengyuhong 阅读(4521) 评论(1) 推荐(2)
摘要: 文章原文:http://linux-vbird.bluedata.org/linux_base/0520source_code_and_tarball.htm#library_dyna_sta重点学习内容:一、 源码的编译: 特别注意-l 和-L两个参数,在使用到外部函数库时是非常重要的。[guest@test guest]# gcc sin.c -lm -L/lib -L/usr/lib # 特别注意,那个 -lm 可以拆开成两部份来看, # -l 是『加入某个函式库(library)』的意思,而m 则是 libm.so 这个函式库,其中, lib 与附档名(.a 或 .so)不需要写 #. 阅读全文
posted @ 2012-02-09 23:22 lengyuhong 阅读(594) 评论(0) 推荐(0)
摘要: 由于之前的一个web项目中,要用get方法去获取数据,但结果时常报错,经过仔细排查才发现原来url长度超过了限制,通过缩短url和发送多次请求的方法解决了该问题,之后在网上查了些资料,发现这个问题还是内藏玄机,要比自己想的复杂。 首先,其实http 1.1 协议中对url的长度是不受限制的,协议原文: The HTTP protocol does not place any a priori limit on the length of a URI. Servers MUST be able to handle the URI of any resource theyserve,... 阅读全文
posted @ 2012-02-04 21:45 lengyuhong 阅读(39128) 评论(0) 推荐(4)
摘要: IE 与DOM游览器的区别 在上文《javascript的事件处理(一)——基础原理》中的各种例子,addEventListener()产生的事件监听在chrome和firfox中有效,但在IE中是无效,这是因为IE实现了类似与DOM中类似的两个方法:attachEvent()和detachEvent(),使用方法值DOM的相类似,不同的是IE只支持事件冒泡,所以通过attachEvent()添加的事件处理程序都会被添加到冒泡阶段。具体代码如下:<button id = 'mybutton5' >Button5</button><script ty 阅读全文
posted @ 2012-01-16 21:27 lengyuhong 阅读(698) 评论(1) 推荐(1)
摘要: 事件是用户或者游览器自身执行的某种动作,诸如click,load,mouseover,都是时间的名称。响应某事件的函数就叫做事件处理程序(或者事件侦听器),事件处理程序的名字往往以'on'开头,比如click事件的事件处理程序是onclick,load时间的是onload。 为事件指定处理程序的方式有好几种: 1. html事件处理程序<button id = 'mybutton1' onclick = 'alert("button1")' >Button1</button><button id 阅读全文
posted @ 2012-01-16 21:25 lengyuhong 阅读(2314) 评论(3) 推荐(5)