05 2013 档案

摘要://判断undefined:var tmp = undefined; if (typeof(tmp) == "undefined"){ alert("undefined"); }//判断null:var tmp = null; if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ alert("null"); }//判断NaN:var tmp = 0/0; if(isNaN(tmp)){ alert("NaN"); }/ 阅读全文
posted @ 2013-05-22 19:18 imlucky 阅读(9741) 评论(0) 推荐(0)
摘要:利用Thomas Loo开发的ECMAScript Cruncher(ESC 可以http://www.saltstorm.net/depo/esc/或51AJAX.com下载)。ESC是一个小巧的Window Shell脚本。利用Thomas Loo开发的ECMAScript Cruncher(ESC 可以下载)。ESC是一个小巧的Window Shell脚本。运行ESC,必须使用Windows系统。打开一个控制台窗口,输入以下命令:cscript ESC.wsf -l [0-4] -ow outputfile.js inputfile.js第一部分,cscript是Windows Shel 阅读全文
posted @ 2013-05-10 15:43 imlucky 阅读(264) 评论(0) 推荐(0)
摘要:一、错误处理的重要性以前,javascript总是因为会出现奇怪的令人困惑的错误消息而知名,调试这种信息确实是一种痛苦的经历。因此,第四版的浏览器(IE4.0和Netscape4.0)包含了一些基本的错误处理功能。不久之后,ECMA和ECMASCript第三版中提出新的解决方案。最新的ECMAScript添加了异常处理机制,采用了从Java中移植过来的模型,第三版用ECMAScript第二版中的一些保留字实现了try…catch..finally结构以及throw操作符1.1、早期浏览器的错误处理早期的浏览器(如IE3.0)没有错误处理。函数通过返回一个无效值(一般是null、false或-1 阅读全文
posted @ 2013-05-10 15:39 imlucky 阅读(477) 评论(0) 推荐(0)
摘要:_T("")是一个宏,他的作用是让你的程序支持Unicode编码因为Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。Windows NT的所有与字符有关的函数都提供两种方式的版本,而Windows 9x只支持ANSI方式。如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于,_L不管你是以什么 阅读全文
posted @ 2013-05-10 10:15 imlucky 阅读(16423) 评论(0) 推荐(2)
摘要:C++主要使用的是C-Style字符串,而M$在Windows中又增加了很多C-Style字符串的变体。这个一多嘛,就容易乱~所谓字符串,就是由字符组合而成,所以我们先来将将字符类型。首先,存在两种最基本的字符类型:char和wchar_t。char大家都很熟悉了,我就跳过。至于wchar_t,是应用于UNICODE的宽字符,即一个字符2Bytes,16Bits。事实上,Windows中利用typedef unsigned shortwchar_t定义wchar_t然后为了书写方便(MS我也没觉得有多大差别),M$又把那两个基本字符类型重新的给他typedef了一遍,即:typedef cha 阅读全文
posted @ 2013-05-10 09:51 imlucky 阅读(1083) 评论(0) 推荐(0)
摘要:在不确定变量类型的情况下,判断Javascript变量是否为空不要使用:if(tmp){}上述判断的问题在于,例如:当tmp的值为数字0时,也会返回false。所以尽量使用:if(tmp != null){}下面是if(tmp){}判断的结果: if(tmp) if(tmp != null)tmp未定义时 //false //falsevar tmp; //false //falsevar tmp = 0; //false //truevar tmp = 10; ... 阅读全文
posted @ 2013-05-08 16:38 imlucky 阅读(34584) 评论(0) 推荐(0)
摘要:(转自:http://www.pediy.com/kssd/pediy08/pediy8-709.htm)Windows系统编程之异步I/O和完成端口【作者】北极星2003【来源】看雪技术论坛(bbs.pediy.com)【时间】2006年7月1日一、同步I/O和异步I/O在介绍这部分内容之前先来认识下“异步I/O”。说起异步IO,很容易联想到同步I/O,对于同一个I/O对象句柄在同一时刻只允许一个I/O操作,其原理如下图所示:显然,当内核真正处理I/O的时间段(T2~T4),用户线程是处于等待状态的,如果这个时间段比较段的话,没有什么影响;倘若这个时间段很长的话,线程就会长时间处于挂起状态。 阅读全文
posted @ 2013-05-06 19:16 imlucky 阅读(439) 评论(0) 推荐(0)
摘要:需要首先说明的是异步I/O和多路复用同步I/O(如通过select函数在连接池中选择任一完成的端口)是有本质差异的,虽然两种方式都能提高效率。异步I/O的思想是在一个端口支持异步读写,读写异步的系统调用需要OS支持,比如Read、Write有异步的实现版本,则用户调用其Read、Write异步版本,如果端口暂时不可用,会立即返回到用户代码。可以针对同一个端口准备多个异步读写操作,充分利用端口资源以及减少用户在等待端口可用过程中被挂起的时间。一、Windows下的异步I/O的模型通过OVERLAPPED structure和WaitForMultipleObjects/WaitForMultip 阅读全文
posted @ 2013-05-06 19:14 imlucky 阅读(1054) 评论(0) 推荐(0)
摘要:之前介绍了Node.js的事件机制,也许读者对此尚会觉得意犹未尽,因为仅仅只是简单的事件机制,并不能道尽Node.js的神奇。如果Node.js是一盘别开生面的磁带,那么事件与异步分别是其A面和B面,它们共同组成了Node.js的别样之处。本文将翻转Node.js到B面,与你共同聆听。异步I/O在操作系统中,程序运行的空间分为内核空间和用户空间。我们常常提起的异步I/O,其实质是用户空间中的程序不用依赖内核空间中的I/O操作实际完成,即可进行后续任务。以下伪代码模仿了一个从磁盘上获取文件和一个从网络中获取文件的操作。异步I/O的效果就是getFileFromNet的调用不依赖于getFile调 阅读全文
posted @ 2013-05-06 19:12 imlucky 阅读(533) 评论(0) 推荐(0)
摘要:在 Windows 平台上不可用。Libeio是全功能的用于C语言的异步I/O库,建模风格和秉承的精神与libev类似。特性包括:异步的read、write、open、close、stat、unlink、fdatasync、mknod、readdir等(基本上是完整的POSIX API)。Libeio完全基于事件库,可以容易地集成到事件库(或独立,甚至是以轮询方式)使用。Libeio非常轻便,且只依赖于POSIX线程。Libeio当前的源码,文档,集成和轻便性都在libev之下,但应该很快可以用于生产环境了。 Libeio是用多线程实现的异步I/O库.主要步骤如下:主线程接受请求,将请求放入请 阅读全文
posted @ 2013-05-06 18:37 imlucky 阅读(4277) 评论(0) 推荐(0)