jquery常用数组函数

1.$.each(array, [callback]) 遍历
var arr = ['javascript', 'php', 'java', 'c++', 'c#', 'perl', 'vb', 'html', 'css', 'objective-c'];
$.each(arr, function(key, val) {
	// firebug console
	console.log('index in arr:' + key + ", corresponding value:" + val);
	// 如果想退出循环
	// return false;
});

2.$.inArray(val,array)判断值是否存在于数组中

确定第一个参数在数组中的位置, 从0开始计数(如果没有找到则返回 -1 ).记得indexOf()方法了吗? indexOf()返回字符串的首次出现位置,而$.inArray()返回的是传入参数在数组中的位置,同样的,如果找到的,返回的是一个大于或等于0的值,若未找到则返回-1.现在, 知道怎么用了吧. 有了它, 判断某个值是否存在于数组中,就变得轻而易举了.

//返回元素在数组中的位置,0为起始位置,返回-1则未找到该元素
console.log($.inArray('javascript', arr));

提高工作效率的工具

  • 查找:这是一类通用问题,可以理解为
  1. 查找文件:Everything,感觉很好用,制定好快捷键后基本不用再打开我的电脑了;
  2. 查找源代码:SourceInsight+Grep, 这两个工具可以直接搞定90%的代码查找任务;
  • 程序编写/查看:
  1. 编辑器:windows下phpStrom,linux当然是vim;
  2. Notepad++作为查看文本是GVIM的良好补充;
  3. 工具箱,推荐GNUWIN,当然windows下的powershell也是很强大的;
  • 熟悉工作环境的快捷键,例如我的环境是windows:
    1. win键+E:打开我的电脑;
    2. win键+R:打开运行窗口;
    3. win键+数字:切换任务栏上对应的程序;
    4. win键+向上箭头:最大化当前窗口(向下最小化窗口);
    5. win键+左箭头:窗口最大化到屏幕左侧(类似可用右箭头);
    6. win键+P:选择演示模式(投影灯);
    7. win键+shift+向左(右):将窗口从一个监视器移到另外一个监视器;
    8. Alt+Tab:切换程序;

Nginx如何配置Fastcgi连接

一、什么是 FastCGI
FastCGI是一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口。多数流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同时,FastCGI也被许多脚本语言所支持,其中就有PHP。
FastCGI是从CGI发展改进而来的。传统CGI接口方式的主要缺点是性能很差,因为每次HTTP服务器遇到动态程序时都需要重新启动脚本解析器来执行解析,然后结果被返回给HTTP服务器。这在处理高并发访问时,几乎是不可用的。另外传统的CGI接口方式安全性也很差,现在已经很少被使用了。
FastCGI接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

二、Nginx+FastCGI运行原理
Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用。FastCGI接口在Linux下是socket,(这个socket可以是文件socket,也可以是ip socket)。为了调用CGI程序,还需要一个FastCGI的wrapper(wrapper可以理解为用于启动另一个程序的程序),这个wrapper绑定在某个固定socket上,如端口或者文件socket。当Nginx将CGI请求发送给这个socket的时候,通过FastCGI接口,wrapper接纳到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;接着,wrapper再将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx;最后,Nginx将返回的数据发送给客户端,这就是Nginx+FastCGI的整个运作过程。详细的过程,如图1所示。

图1 Nginx+FastCGI运行原理

三、Nginx如何配置Fastcgi连接

/usr/local/nginx/conf/nginx.conf。下面是在Nginx下支持PHP解析的一个虚拟主机配置实例。

版本1:

 server {   

 server_name pblog.applinzi.com;  
  root /web/www/pblog; 
  location / {  

 index index.html index.php;  
  if ( !-e $request_filename){
     rewrite ^/(.*)$ /index.php?s=$1 last;
     break;
  } 

 }  




 location ~ \.php$ {  

    root       /web/www/pblog;  

    fastcgi_pass   unix:/tmp/php-cgi.sock;

    fastcgi_index  index.php;  

    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    include     fastcgi_params;  

 }  

}

版本2:

 server {   

 server_name pblog.applinzi.com;  
  root /web/www/pblog; 

  location / {  

 index index.html index.php;   
  if ( !-e $request_filename){
   rewrite ^/(.*)$ /index.php?s=$1 last;
   break;
  }
 }  

location ~ \.php(.*)$ {
 fastcgi_pass unix:/tmp/php-cgi.sock;
 fastcgi_index index.php;
 fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
 include fastcgi_params;
 }


}

通过location指令,将所有以php为后缀的文件都交给127.0.0.1:9000来处理,而这里的IP地址和端口就是FastCGI进程监听的IP地址和端口。
fastcgi_param指令指定放置PHP动态程序的主目录,也就是$fastcgi_script_name前面指定的路径,这里是/usr/local/nginx/html目录,建议将这个目录与Nginx虚拟主机指定的根目录保持一致,当然也可以不一致。
fastcgi_params文件是FastCGI进程的一个参数配置文件,在安装Nginx后,会默认生成一个这样的文件,这里通过include指令将FastCGI参数配置文件包含了进来。

四、Nginx连接Fastcgi有两种模式

1. 用ip进行连接,例如

fastcgi_pass 127.0.0.1:9000;

2. 用socket进行连接,例如

fastcgi_pass unix:/tmp/php-cgi.sock;