摘要: 由于项目的需要,进行一个COOKIE内容长度的限制测试,作一个记录供参考,测试设计如下,分两种情况: (1) 当前页面未设置同名Cookie的情况; (2) 当前页面已设置同名Cookie的情况;主要测试代码如下://超过4K的一个超长字符串var longString='dfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafdsafdfsafd阅读全文
posted @ 2011-03-15 10:52 skyaspnet 阅读(1899) 评论(6) 编辑
摘要: 想做几件事情,怕忘记了,好记性不如烂笔头,记录如下:已经完成:0/41. 阅读《Hadoop权威指南第2版》,进行中。。。2. 阅读《算法导论》。进行中。。。。3. 阅读《计算机网络第五版》。4. 重新阅读Javascript经典书籍,写BLOG。PS: 要根据个人精力来安排学习任务,集中主要的力量取得最好的效果,努力。。。阅读全文
posted @ 2010-01-12 19:49 skyaspnet 阅读(298) 评论(2) 编辑

本文主要是记录Windows Server 2003 ApacheFastCGI方式运行PHP,并升级至PHP5.3.9版本的相关记录,

分为以下四个部分:

1.   PHP线程安全与非线程安全版本说明

2.   FastCGI方式运行PHP相关配置

3.   升级PHP5.3.9过程中所遇到的问题

4.   总结

说明:本文不涉及MySQL以及php.ini的具体配置。


1.  PHP线程安全与非线程安全版本说明

     20001020发布的第一个Windows版的PHP3.0.17开始的都是线程安全的版本,这是由于与Linux/Unix系统是采用多进程的工作方式不同的是Windows系统是采用多线程的工作方式。如果在IIS下以CGI方式运行PHP会非常慢,这是由于CGI模式是建立在多进程的基础之上的,而非多线程。一般我们会把PHP配置成以ISAPI的方式来运行,ISAPI是多线程的方式,这样就快多了。但存在一个问题,很多常用的PHP扩展是以Linux/Unix的多进程思想来开发的,这些扩展在ISAPI的方式运行时就会出错搞垮IIS。因此在IISCGI模式才是 PHP运行的最安全方式,但CGI模式对于每个HTTP请求都需要重新加载和卸载整个PHP环境,其消耗是巨大的。

    为了兼顾IISPHP的效率和安全,微软给出了FastCGI的解决方案。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行。这样既解决了CGI进程模式消耗太大的问题,又利用上了CGI进程模式不存在线程安全问题的优势。因此,如果是使用ISAPI的方式来运行PHP就必须用Thread Safe(线程安全)的版本;而用FastCGI模式运行PHP的话就没有必要用线程安全检查了,用None Thread Safe(NTS,非线程安全)的版本能够更好的提高效率。

     在目前Windows下版本中的PHP官方下载主页上:http://windows.php.net/download/,我们可以看到目前只开放了PHP5.3.9PHP5.2.17两个版本的下载,并且在5.3.9版本中只提供了VC9 X86运行库的线程安全和非线程安全版本下载,而5.2.17版本中只提供了VC6 X86运行库的线程安全和非线程安全版本下载,那么这两个运行库版本有什么区别呢?简单来说:

VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本。

VC9版本是使用Visual Studio 2008编译器编译的,如果你的PHP是用IIS来架设的,那你就选择VC9版本。

    本文下载的版本是PHP5.3.9的非线程安全版本,下载地址为:http://windows.php.net/downloads/releases/php-5.3.9-nts-Win32-VC9-x86.zip

 

2.  以FastCGI方式运行PHP相关配置

     首先下载mod_fcgid,下载地址为: http://httpd.apache.org/download.cgi#mod_fcgid,将解压后的mod_fcgid.so放至Apache下的modules目录下;

     其次,将下载后的php5.3.9非线程版本解压至 c:/php目录下,配置好php.ini,并复制一份至c:/windows下,修改Apache的配置文件httpd.conf,在最后加入以下配置:

LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .fcgi .php

#php.ini目录
FcgidInitialEnv PHPRC "c:/php"

#设置PHP_FCGI_MAX_REQUESTS大于FcgidMaxRequestsPerProcess,防止php-cgi进程在处理完所有请求前退出
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000

#php-cgi每个进程的最大请求数
FcgidMaxRequestsPerProcess 1000

#php-cgi最大的进程数
FcgidMaxProcesses 3

#脚本超时时间
FcgidIOTimeout 120
FcgidIdleTimeout 120

#php-cgi.exe路径
FcgidWrapper "c:/php/php-cgi.exe" .php

#解析.php文件
AddType application/x-httpd-php .php

      最后,去掉<Directory "你的PHP网站文件目录">节的Options None一行的注释,并修改Options None 为 Options All,保存httpd.conf,并重启Apache服务,升级完成。如下图:

此外,任务管理器中也将会看到php-cgi.exe进程。

 

3.  升级PHP至5.3.9过程中所遇到的问题

    由于网站以前所使用的PHP版本为5.2.17线程安全版本,当时第一反应就是下载PHP5.3.9线程安全版本,并且提前已经安装好了VC++ 2008 SP1运行库,配置好php.ini后重启Apache服务,一直报如下错误:

   [warn] pid file C:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?

    始终无法启动成功,在自己本地测试机XP系统下运行正常,无奈之下选择以FastCGI方式来运行PHP(相关配置见上节),如果哪位同学也遇到了这个问题,可以考虑使用FastCGI方式来运行PHP

 

4. 总结

    遇到问题时多从源头找原因,如果一开始的思路有问题或者说在具体执行过程中行不通,那么可以考虑换一种思路。

    希望本文的简单记录对大家有帮助,谢谢:)

    顺便截个图,自己设计的: 

    

posted @ 2012-01-17 14:08 skyaspnet 阅读(71) 评论(0) 编辑

 注:本文转载自 developerworks

  作者:王丹丹,高级软件工程师,IBM

  简介: JavaScript 编程语言作为最流行的客户端脚本语言,早已被众多 Web 开发人员所熟悉。随着 Web2.0 时代的到来和 Ajax 技术的广泛应用,JavaScript 也逐渐吸引着更多的视线。工作中要求越多的是对 JavaScript 语言的深入学习,灵活运用,和对编码质量的保证。

  对于熟悉 C/C++ 或 Java 语言的工程师来说,JavaScript 显得灵活,简单易懂,对代码的格式的要求也相对松散。很容易学习,并运用到自己的代码中。也正因为这样,JavaScript 的编码规范也往往被轻视,开发过程中修修补补,最终也就演变成为后续维护人员的恶梦。软件存在的长期价值直接与编码的质量成比例。编码规范能帮助我们降低编程中不必要的麻烦。而 JavaScript 代码是直接发送给客户浏览器的,直接与客户见面,编码的质量更应该受到关注。

  本文浅谈 JavaScript 编程中关于编码规范的问题,分析其中缘由。希望引起更多 Web 开发人员对 JavaScript 编码规范问题的关注和对软件产品质量问题的重视。

  前言

  提及 C/C++ 和 Java 编码规范,相信许多工程师并不生疏。但说到 JavaScript 语言的编码规范,也许您会忍俊不禁。JavaScript 不是语法很灵活吗?变量随时用随时可以声明;语句结束符可以不要;字符串和数字也可以相加;参数多一个少一个也不会报错。没错,当您从 C/C++ 和 Java 严格的语法规定之下,转向 JavaScript 语言,会觉得自由了很多,轻松了很多。语法松散是 JavaScript 重要的特征。它灵活易懂,给开发人员带来了很多方便,但如果编写过程中不注意,代码的调试成本和维护成本则会无形地增加。

  JavaScript 编码会随应被直接发送到客户端的浏览器,代码规范不只是代码质量的保证,也影响到产品的长期信誉。希望 JavaScript 编程语言的规范问题也能同样引起更多朋友的关注。

  JavaScript 编码规范建议

  本文就 JavaScript 编码过程中涉及的排版、命名、声明、作用域、及一些特殊符号的使用等方面,根据个人在学习工作中的总结,给出自己的一些建议,并分析其中缘由,以供参考。

  JavaScript 文件引用

  JavaScript 程序应该尽量放在 .js 的文件中,需要调用的时候在 HTML 中以 <script src="filename.js"> 的形式包含进来。JavaScript 代码若不是该 HTML 文件所专用的,则应尽量避免在 HTML 文件中直接编写 JavaScript 代码。因为这样会大大增加 HTML 文件的大小,无益于代码的压缩和缓存的使用。

  另外,<script src="filename.js"> 标签应尽量放在文件的后面。这样会降低因加载 JavaScript 代码而影响页面中其它组件的加载时间。

  代码排版

  行长度

  每行代码应小于 80 个字符。如果代码较长,应尽量选择换行,下一行代码应缩进 8 个空格。这样可以使代码排版整齐,减轻阅读代码的疲劳感。换行缩进 8 个空格可以和代码段的缩进 4 个空格区分开,以增强代码的可阅读性。

  行结束

  JavaScript 语句应该以分号结束。但大多数浏览器允许不写分号,只要在本应是分号的地方有一个换行符就行。但是如果代码行较长需要换行的时候,有哪些注意事项呢?换行应选择在操作符和标点符号之后,最好是在逗号','之后,而不要在变量名、字符串、数字、或')' ']' '++' '--'等符号之后换行。

  这样可以有效的防止拷贝、粘贴而引起的错误,并可有效地增强代码的可阅读性。请见清单1,代码的输出符合我们的期望。但就写法而言,对 valueB 的赋值语句是在变量 valueA 之后进行的换行,这很容易被误解为 valueB=ValueA,给阅读造成障碍。而对 valueC 的复制语句是在'+'之后进行的换行,就容易理解的多。这也是本文所提倡的换行方式。

  清单 1. 行结束的位置

  代码:

<script language="javascript"> 
var valueA = 1;
var valueB = valueA ///bad
+1;
var valueC = valueB + ///good
valueA;
alert (valueB); //output: valueB=2
alert (valueC); //output: valueC=3
</script>

  缩进

  关于缩进的问题,不只是 JavaScript,几乎所有的语言编写的时候,都会提及缩进的问题。缩进几乎是代码编写规范的第一课,是代码可阅读性判断的直接因素。

  代码缩进的好处是不言而喻的,但是对于如何缩进,则没有标准而言。最受欢迎的是方便使用 TAB 键缩进,也有些喜欢用 2 个、4 个、8 个空格进行缩进。这样缩进风格不一,也同样给代码的阅读带来障碍。

  本文提倡用4个空格来进行缩进,并在同一产品中采用同一种缩进标准。不支持用 TAB 键进行缩进。这是因为直到现在还没有统一的标准来定义 TAB 键所代替的空白大小,有些编辑器解析为 4 个空格大小,有些则解析为 8 个。因而用不同的编辑器查看代码,可能造成格式混乱。当然 TAB 简单易用,为解决这个问题,建议在设置开发环境时,将编辑器里的 TAB 快捷键重新设置为 4 个空格。据了解 Eclipse, Vi, Nodepad++,Editplus, UltraEdit 等流行的编辑器,均提供了此功能。

  注释

  代码中的注释很重要,自然也是毋庸置疑的。通常我们会强调代码中注释数量的多少,而轻视了对注释质量的提高。编码是及时添加注释,会给后续代码的维护人员带来很大的便利。但是如果注释不注意更新,或者由于拷贝、粘贴引起的错误的注释,则会误导阅读人员,反而给阅读带来障碍。

  除了注释要及时更新外,我们还应对注释的内容要特别关注。注释要尽量简单、清晰明了,避免使用含混晦涩的语言,同时着重注释的意义,对不太直观的部分进行注解。请见清单 2。

  清单 2. 有意义的注释

  代码:

<script language="javascript"> 
//following section is used to initialize golbal variables (good)
var valueA = 0; //initialize valueA to be sero (bad)
var valueB = 1;
...
//call f1 function after waiting for 50 seconds. (good)
setTimeout (f1,50000); //set timeout to be 20s (copy error)
...
</script>

  这样的注释方式在 JavaScript 代码中经常见到。"initialize valueA to be sero" 这样的注释有什么用呢?难道阅读程序的工程师从"var valueA = 0;"复制语句中看不出来么?"set timeout to be 20s"这条注释,不只是因拷贝、粘贴引起的时间大小的错误,同时也误导了程序员对这条语句的理解。setTimeout () 函数的作用并非是设置函数执行的超时时间,而是等待一定时间后执行所调用的函数,害人匪浅呀。这样的注释内容宁可删掉。

  此外,JavaScript 的注释有两种"//" 和"/* .... */",建议"//"用作代码行注释,"/* .... */"形式用作对整个代码段的注销,或较正式的声明中,如函数参数、功能、文件功能等的描述中。

  标识符命名

  JavaScript 中的标识符的命名规则:

  • 以字母、下划线'_'或美元符号'$'开头
  • 允许名称中包含字母,数字,下划线'_'和美元符号'$'
  • 区分大小写

  变量、参数、成员变量、函数等名称均以小写字母开头,构造器的名称以大写字母开头。下划线'_'开头的变量一般习惯于标识私有/局部成员。而美元符号'$'开头的变量习惯于标识系统相关,比如系统进程等。应避免用下划线'_'或美元符号'$'来命名标识符。尽可能地降低代码的阅读负担。

  声明

  变量的声明

  尽管 JavaScript 语言并不要求在变量使用前先对变量进行声明。但我们还是应该养成这个好习惯。这样可以比较容易的检测出那些未经声明的变量,避免其变为隐藏的全局变量,造成隐患。

  在函数的开始应先用 var 关键字声明函数中要使用的局部变量,注释变量的功能及代表的含义,且应以字母顺序排序。每个变量单独占一行,以便添加注释。这是因为 JavaScript 中只有函数的 {} 表明作用域,用 var 关键字声明的局部变量只在函数内有效,而未经 var 声明的变量则被视为全局变量。我们来看下清单 3。

  清单 3. 局部变量声明

  代码:

<script language="javascript"> 
var valueA = "a";
var valueB = "b";
function f1 () {
var valueA = "c";
alert ("valueA="+valueA); //output: valueA=c
valueB = "d";
alert ("valueB="+valueB); //output: valueB=d
}
f1 ();
alert ("valueA="+valueA); //output: valueA=a
alert ("valueB="+valueB); //output: valueB=d
</script>

  从上例的输出惊奇地发现,用 var 声明过的变量 valueA 和没有声明的变量 valueB 是有区别的。特别需要注意的是,在函数内部用 var 声明的变量为局部变量,这样可以有效地避免因局部变量和全局变量同名而产生的错误。

  函数的声明

  函数也应在调用前进行声明,内部函数应在 var 声明内部变量的语句之后声明,可以清晰地表明内部变量和内部函数的作用域。

  此外,函数名紧接左括号'('之间,而右括号')'和后面的'{'之间要有个空格,以清楚地显示函数名以其参数部分,和函数体的开始。若函数为匿名/无名函数,则 function 关键字和左括号'('之间要留空格,否则可能误认为该函数的函数名为 function。

  清单 4. 内部函数声明

  代码:

<script language="javascript"> 
var innerA = 1;
function outF () {
var innerA = 2;
function _inF () {
alert ("valueA="+innerA);
}
_inF ();
}
outF (); //output: valueA=2
_inF (); //error: innerF is not defined
</script>

  从清单 4 的输出可以看出,inF () 函数仅在 outF () 函数的内部生效,局部变量 innerA 对内部函数的作用域生效。这样的编码方式使得变量和函数的作用域变得清晰。

  语句

  对于简单语句而言,需要提及的仍然是分号必要性,同时,一行最多有一个语句。如果一个赋值语句是用函数和对象来赋值,可能需要跨多行,一定切记要在赋值语句末加上分号。

  这是因为 JavaScript 中,所有表达式都可以当语句,遇换行符时会解析为表达式的结束,此时不规范的换行和分号的丢失,可能引入新的错误。

  对于复合语句,if, for, while, do, switch, try … catch 等代码体,函数定义的函数体,对象的定义等都需要放在花括号'{}'里面。

  • '{' 应在行末,标志代码块的开始。
  • '}' 应在一行开头,标志代码块的结束,同时需要和'{'所在行的开始对齐,以表明一个完整的复合语句段。这样可以极大地提高代码的可阅读性,控制逻辑能清晰地表现出来。
  • 被包含的代码段应该再缩进 4 个空格。
  • 即使被包含的代码段只有一句,也应该用花括号'{}'包含。尽管不用花括号代码也不会错,但如若需要增加语句的话,则较容易因花括号遗漏而引起的编译错误或逻辑错误。

  return语句在使用时也需慎重,如果用表达式的执行作为返回值,请把表达式和 return 放在同一行中,以免换行符被误解析为语句的结束而引起返回错误。return 关键字后若没有返回表达式,则返回 undefined。构造器的默认返回值为 this。

  清单 5. return 表达式

  代码:

<script language="javascript"> 
function F1 () {
var valueA = 1;
var valueB = 2;
return valueA + valueB;
}
function F2 () {
var valueA = 1;
var valueB = 2;
return
valueA + valueB;
}
alert ( F1 () ); //output: 3
alert ( F2 () ); //ouput: undefined
</script>

  在清单 5 中显示了因返回表达式没有和 return 关键字放在同一行而引起的返回错误,需重视。

  特殊符号

  空白符

  适当的空白行可以大大提高代码的可阅读性,可以使代码逻辑更清晰易懂。同时,在表达式中适当的留空白,也会给代码的阅读带来方便。

  关键字的后面如有括号,则最好在关键字和左括号'('之间留空白,如 for, if, while 等。而函数名和括号之间则不宜留空白,但若是匿名函数,则必须在 function 和左括号'('之间留空白,否则,编辑器会误认为函数名为 function。

  在表达式中,二元运算符 ( 除左括号'(',左方括号'[',作用域点'.') 和两个操作数之间最好留空白。一元运算符(若不是词 typeof 等)和其操作数之间不宜留空白。

  逗号','的后面需要留空白,以显示明确的参数间隔,变量间隔等。

  分号';'之后通常表明表达语句的结束,而应空行。在 for 的条件语句中,分号之后则应该留空白。

  { } 和 [ ]

  在 JavaScript 中,如需定义空对象和空数组,通常很自然地想到用 new Object () 和 new Array () 的方法。其实花括号'{}'和方括号'[]'可以直接用来定义一个空对象和一个空数组。这种书写方法可以使代码看起来简单易懂。

  == 和 ===

  判断"逻辑等"在代码里太平常的不过事情了,但 JavaScript 与其他熟知的编程语言不同的是,除了可以使用两个等号'=='来作判断以为,还可以使用三个等号'==='来进行逻辑等判断。两者的不同是'=='作逻辑等判断时,会先进行类型转换后再进行比较。'==='则不会。因而,'=='进行的判断结果可能产生偏差。'!='与'!=='的区别亦是如此。本文提倡尽量使用'==='来进行逻辑等的判断,用'!=='进行逻辑不等的判断。

  清单 6. === 的使用

  代码:

<script language="javascript"> 
var valueA = "1";
var valueB = 1;
if ( valueA == valueB) {
alert ("Equal");
}
else {
alert ("Not equal")
}
//output: "Equal"
if ( valueA === valueB) {
alert ("Equal");
}
else {
alert ("Not equal")
}
//output: "Not equal"
</script>

  清单 6 中,valueA 和 valueB 两个变量的值显然是不相等的,起码 valueA 是个字符串,而 valueB 是一个数字。但用'=='进行判断是,程序却输出相等的字样。这是因为编译器对两个变量进行比较时,因为他们的类型不同,而自动地将 valueB 转换成字符串,而后再和 valueA 进行比较的。用'==='得到的判断结果正和预期的结果相符。

  +

  加号'+'也同样是程序员所熟知的操作符之一。JavaScript 和其他编程语言不同的是,在 JavaScript 中,'+'除了表示数字值相加,字符串相连接以外,还可以作一元运算符用,把字符串转换为数字。因而如果使用不当,则可能与自增符'++'混淆而引起计算错误。这一点,在清单 7 中可以清楚地看出。

  清单 7. 巧用 + 号

  代码:

<script language="javascript"> 
var valueA = 20;
var valueB = "10";
alert (valueA + valueB); //ouput: 2010
alert (valueA + (+valueB)); //output: 30
alert (valueA + +valueB); //output:30
alert (valueA ++valueB); //Compile error
</script>

  总结

  本文就 JavaScript 代码的排版、命名、声明、语句、和一些特殊字符的使用等方面,谈了自己对 JavaScript 编程规范的建议。此外,还有许多方面需要深入了解研究,如 with, eval 语句和 this 对象的使用等等。我们在认识其普遍性的同时也需要注意其特殊性,在编写代码时多用心留意,以创造更多更优质的程序代码。

http://news.cnblogs.com/n/116466/

posted @ 2011-10-02 23:10 skyaspnet 阅读(41) 评论(0) 编辑

本文是从 Most Pressed Keys and Programming Syntaxes 这篇文章翻译而来。

我研究过很多编程语言;我经常的好奇于在面对这些不同的语法时,编程过程会有哪些不同,一种不同的语法会让你更富有表达性或编码速度的更快吗?我并不知道,我知道的只是在使用不同的语言时你都敲击了哪些键盘上的键。

这也许是那些不知道该学习使用哪种编程语言的人会感兴趣的事。据我的认识,键盘使用分布越广的语言通常是设计的很糟糕的语言。

你也许会争辩说,程序中变量名的取法会影响统计的结果。可是,大部分编程语言都有自己的命名习惯,我们可以假设这些变量的命名都很正常。不过,在下面的热点图中,有些键被忽略掉了,比如 Shift 和 Caps 键。在 perl 里会大量使用美元符号($)

空格符也没有计算在内。

用于统计的程序是来自于 Github 上一些很流行的项目。

Javascript

clip_image002

Shell

clip_image004

Java

clip_image006

C

clip_image008

C++

clip_image010

Ruby

clip_image012

Python

clip_image014

PHP

clip_image016

Perl

clip_image018

ObjC

clip_image020

Lisp

clip_image022

Lisp 代码是来自这里的由 Paul Graham 所写的程序。

  1. 产生这个效果图的 heatmap.js 脚本
  2. 关注作者的 twitter@myusuf3

http://news.cnblogs.com/n/116196/

posted @ 2011-10-02 23:04 skyaspnet 阅读(19) 评论(0) 编辑

1. John Resig - http://ejohn.org

毫无疑问,jQuery 的缔造者的博客是你首先必须关注的。

clip_image001

2. Filmament Group Lab

这个也是必看之一,因为 jQuery UI 类库就出自这个网站

clip_image002

3.  Learning jQuery

老牌的学习 jQuery 的网站之一,这个网站是由几个作者联合建立

clip_image003

4.  Soh Tnaka Blog

非常酷的一个 jQuery 设计和分享网站,风格非常酷,里面的教程和插件实现非常有艺术感,本人这里强烈推荐。

clip_image004

5.  nettuts

老牌的网页设计网站,里面包含了非常多的 jQuery 教程和技巧。同时这个网站也有大量的设计相关的文章,大家可以学习。

clip_image005

6. jQuery4u

老牌的 jQuery 网站学习网站,里面有很多 jQuery 的教程,及其收集的 jQuery 插件。

clip_image006

7. WebResourceDepot

收集了许多 jQuery 插件教程及其信息

clip_image007

8.  The Sea of ideas - personal blog of Paul Bakus

Paul Bakus 是 jQueryUI 的创始者并且也是很多著名插件的开发人,在他的博客中我们可以找到大量 javascript,jQuery,jQueryUI 开发的信息和文章

clip_image008

9.  James Padolsey

Jame 是一个具有丰富开发经验的前端开发工程师,在他的博客中,他经常介绍最新的开发技术和价格,并且分享很多 jQuery 代码及其实现

clip_image009

10.  jankoatwarpspeed

Janko 的博客发布有很多写的非常好的 jQuery 开发文章,并且也有新书的发布

clip_image010

11. jQueryhowto

jQueryHowto 提供了大量的代码片段帮助你解决 jQuery 编程中的个实现问题,非常实用的开发查询网站,GBin1 这里强烈推荐

clip_image011

12.  Marcofolio

这个博客拥有很多不错的教程,帮助大家实现非常实用的 jQuery 功能, 例如,如何实现 TechCrunch 的像素 Logo

clip_image012

13.  Build internet

Build internet 拥有很多书写的非常好的 jQuery 教程,当然由于它是一个综合性的网站,也拥有很多其它的 web 开发教程和资料

clip_image013

14. W3CSchools

比较老牌的一个网站,主要提供各种 W3C 相关教程,包括 HTML,XML,CSS,Javascript,也包括 jQuery 等其它教程

clip_image014

15. Addy Osmani Blog

Addy Osmani 拥有很多详细讲解的 jQuery 教程及其相关 Javascript toolkit。

clip_image015

16. jQuery style

一个完全讲解 jQuery 类库的网站,分享代码片段及其各种 jQuery 插件。

clip_image016

17. The Ultimate jQuery List

一个非常完整的 jQuery 类库,插件,演示及其教程说明, 完全值得大家去查看内容

clip_image017

18. Queness

这个个人 blog 拥有很多实用的 jQuery 资源

clip_image018

19. Tutorialzine

这个博客有很多实用的资源,可以直接在代码中实用

clip_image019

20. GBin1

GBin1 是提供互联网相关技术的综合类博客,我们提供最新的互联网信息,技术及其教程,希望能帮助大家了解最新的互联网技术和信息

image

http://news.cnblogs.com/n/116253/

posted @ 2011-10-02 23:02 skyaspnet 阅读(31) 评论(0) 编辑
摘要: Learning something new is scary. For me, the biggest issue with picking up a new skill is that I don’t know what I don’t know. Given that, it’s often useful to find a plan for learning whatever you’re interested in. That’s what this post is: your blueprint, your roadmap, your plan of action for lear阅读全文
posted @ 2011-10-01 00:38 skyaspnet 阅读(44) 评论(0) 编辑


非IE下 IE下

for

htmlFor

readonly

readOnly

maxlength

maxLength

class

className

cellspacing

cellSpacing


​​


posted @ 2011-09-30 21:00 skyaspnet 阅读(22) 评论(0) 编辑

 

CommandActionSample usage
?sometext

当你输入想查找某些文本(字符串),Fiddler会高亮显示在sessions 列表中出现该文本的的URL

?searchtext
>size

筛选出sessions中,字节数大于 size 的响应

>40000 <-- Select responses over 40kb
<size

筛选出sessions中,字节数小于 size 的响应

<5k <-- Select responses under 5kb
=status
=method
筛选出sessions中, response status = status or request method = method. =301 <-- Select 301 redirect responses
=POST <-- Select POST requests
@host

筛选出sessions中,请求的主机包含host的。

@msn.com <-- Select www.msn.com, login.msn.com, etc
bold

Mark any future sessions in bold if the url contains the target string

标记url包含目标字符串的sessions列表

bold /bar.aspx

bold <-- Call with no parameter to clear

bpafter

当请求的URI包含指定的字符串,中断任意响应

bpafter /favicon.ico

bpafter <-- Call with no parameter to clear

bps

当状态码匹配是,中断任意的响应

bps 404

bps <-- Call with no parameter to clear

bpv or bpm

对请求的方法(POST/GET)创建请求断点。使用无参数的bpv指令,清除断点

bpv POST

bpv <-- Call with no parameter to clear

bpu

对URI创建一个请求中断,该URI可以包含特定的字符串。使用无参数的bpu指令,清除断点

bpu /myservice.asmx

bpu <-- Call with no parameter to clear

cls or clear 清空 session 列表 cls
dump dump all sessions to a zip archive in C:/ dump
g or go 重置sessions里的所有响应 g
help 显示帮助页面 help
hide 在系统Tray中隐藏Fiddler hide
urlreplace Replace any string in URLs with a different string. Setting this command will clear any previous value for the command; calling it with no parameter will cancel the replacement. urlreplace SeekStr ReplaceWithStr

urlreplace <-- Call with no parameters to clear

start 注册一个新的系统代理 start
stop 停止指定的系统代理 stop
show Restore Fiddler from system tray -- more useful when triggering rules from ExecAction.exe (see below) show
select Select any session where the response Content-Type header contains the specified string. select image

select css

select htm

allbut or keeponly Hide all sessions except those where Content-Type header contains the specified string. allbut xml

allbut java

quit 关闭Fiddler quit

官方原始文档:

CommandActionSample usage
?sometext As you type sometext, Fiddler will highlight sessions where the URL contains sometext. Hit Enter to set focus to the selected matches. ?searchtext
>size Select sessions where response size is greater than size bytes. >40000 <-- Select responses over 40kb
<size Select sessions where response size is less than size bytes. <5k <-- Select responses under 5kb
=status
=method
Select sessions where response status = status or request method = method. =301 <-- Select 301 redirect responses
=POST <-- Select POST requests
@host Select sessions where the request host contains host. Hit Enter to set focus to the selected matches. @msn.com <-- Select www.msn.com, login.msn.com, etc
bold Mark any future sessions in bold if the url contains the target string bold /bar.aspx

bold <-- Call with no parameter to clear

bpafter Break any response where the RequestURI contains the specified string bpafter /favicon.ico

bpafter <-- Call with no parameter to clear

bps Break any response where the status code matches bps 404

bps <-- Call with no parameter to clear

bpv or bpm Create a request breakpoint for the specified HTTP method. Setting this command will clear any previous value for the command; calling it with no parameter will disable the breakpoint. bpv POST

bpv <-- Call with no parameter to clear

bpu Create a request breakpoint for URIs containing the specified string. Setting this command will clear any previous value for the command; calling it with no parameter will disable the breakpoint. bpu /myservice.asmx

bpu <-- Call with no parameter to clear

cls or clear clear the session list cls
dump dump all sessions to a zip archive in C:/ dump
g or go Resume all breakpointed sessions g
help show this page help
hide Hide Fiddler in System tray hide
urlreplace Replace any string in URLs with a different string. Setting this command will clear any previous value for the command; calling it with no parameter will cancel the replacement. urlreplace SeekStr ReplaceWithStr

urlreplace <-- Call with no parameters to clear

start Register as the system proxy start
stop Unregister as the system proxy stop
show Restore Fiddler from system tray -- more useful when triggering rules from ExecAction.exe (see below) show
select Select any session where the response Content-Type header contains the specified string. select image

select css

select htm

allbut or keeponly Hide all sessions except those where Content-Type header contains the specified string. allbut xml

allbut java

quit Shutdown Fiddler. quit
 
 
附:Fiddler的几个使用技巧
 

只简单说下和前端开发调试密切相关的:

  1. 使用AutoResponder本地调试文件。请参考如何直接调试线上页面的JavaScript和CSS.
  2. 使用QuickExecBox快速操作。请参考QuickExec Reference. 推荐熟练掌握的命令:?sometext, bpu, go, urlreplace. 快捷键:Alt + Q, Ctrl + I, Shift + Del, Ctrl + X, F6.
  3. 使用Filter过滤信息。比如禁用JS, 设置断点等等。
  4. 使用bpu + Inspectors动态修改Response. 比如修改页面中的JS代码片段等等,非常有用。
  5. 使用Request Buidler测试请求。可以很方便的测试ajax代码。
  6. 使用Statistics + Timeline + neXpert查看性能等统计数据。
  7. 使用CustomRules, 自定义配置和命令等。比如修改var m_DisableCaching: boolean = false;的值为true, 就可以默认禁止缓存。还可以自定义命令等等。
  8. 开发自己的扩展。请参考Extending Fiddler with .NET Code.

最后强烈推荐Fiddler的视频教程:Fiddler Demonstration Videos(听不懂没关系,能看懂就能学会)

另外,Firefox下推荐使用FoxyProxy自动切换代理。一次设定,服务终身。

 

http://blog.csdn.net/spring21st/article/details/5843495

http://www.cnblogs.com/Fernando/archive/2009/03/10/1407703.html

posted @ 2011-09-28 09:48 skyaspnet 阅读(75) 评论(0) 编辑
摘要: Google Chrome扩展对于开发者来说是非常实用的,它们可以使开发者在开发过程中不必运行一些琐碎的工具,从而使他们的工作更加集中。Chrome扩展可以通过很多种方式来帮助开发者。Chrome是个非常受欢迎的浏览器,而这些扩展无疑又增加了它的魅力。我们已经搜集了一些重要的Chrome扩展,这非常有利于我们的Web开发工作。1. Speed TracerSpeed Tracer是一款可以帮助你发现并修复Web应用程序性能问题的扩展应用。Speed Tracer的功能很强大,它可以对网页中的元素进行全方位的检测分析,找出Web应用运行缓慢的罪魁祸首,以方便开发者优化代码。Speed Trac.阅读全文
posted @ 2011-09-11 17:35 skyaspnet 阅读(67) 评论(0) 编辑
摘要: 在历时长达18个月的努力之后,Mozilla终于成功为Firefox的Javascript引擎增加了一个重大的新特性,根据初步测试,至少可以提高20%到30%的Javascript性能。这个新的特性就是在Firefox的JaegerMonkey JIT编译器中加入的类型推断(Type Inference),它将随同Firefox 9一起提供测试。类型推断最早被提及还要追溯到几个月之前的Firefox 5时代,但是直到现在它才第一次登上舞台。 如果你是一名web程序员,那你一定会被此震撼!如果你并不太熟悉技术,那么这里有一个对类型推断的简单介绍。 在每个编程语言中,变量和函数都有一个类型。类型.阅读全文
posted @ 2011-09-05 11:41 skyaspnet 阅读(24) 评论(0) 编辑
摘要: 上周,我整理了《jQuery设计思想》。那篇文章是一篇入门教程,从设计思想的角度,讲解"怎么使用jQuery"。今天的文章则是更进一步,讲解"如何用好jQuery"。我主要参考了Addy Osmani的PPT《提高jQuery性能的诀窍》(jQuery Proven Performance Tips And Tricks)。他是jQuery开发团队的成员,具有一定的权威性,提出的结论都有测试数据支持,非常有价值。==============================================jQuery最佳实践阮一峰 整理1.使用最新版本的j阅读全文
posted @ 2011-08-24 11:09 skyaspnet 阅读(44) 评论(0) 编辑