完美

[学习|工作|博客|交流平台|完美起航]

作者头像SmartZ2017.06.05 10:07 

nginx配置允许跨域访问

nginx配置允许跨域访问location~.*\.(php|php5)?$ { add_header'Access-Control-Allow-Origin''*'; add_header'Access-Control-Allow-Credentials''true'; add_header'Access-Control-Allow-Headers''X-Requested-With,Content-Type,Authorization'; add_header'Access-Control-Allow-Methods''GET,POST,OPTIONS'; if($request_method='OPTIONS'){return204;} #fastcgi_passunix:/tmp/php-cgi.sock; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; includefastcgi.conf; }

nginx 1443 3

作者头像SmartZ2017.06.04 14:38 

C/C++开发求素数的Nodejs插件

使用C语言开发去素数的nodejs插件,c语言代码如下#include<node.h> #include<stdlib.h> namespacePrime{ usingv8::FunctionCallbackInfo; usingv8::Isolate; usingv8::Local; usingv8::Object; usingv8::String; usingv8::Value; usingv8::Exception; usingv8::Number; //voidMethod(constFunctionCallbackInfo<Value>&args){ // Isolate*isolate=args.GetIsolate(); // args.GetReturnValue().Set(String::NewFromUtf8(isolate,"world")); //} voidPrime(constFunctionCallbackInfo<Value>&args){ Isolate*isolate=args.GetIsolate(); inti,j,a,b; //intresult[2]; //检查传入的参数的个数 if(args.Length()<1){ //抛出一个错误并传回到JavaScript isolate->ThrowException(Exception::TypeError( String::NewFromUtf8(isolate,"参数的数量错误"))); return; } //检查参数的类型 if(!args[0]->IsNumber()){ isolate->ThrowException(Exception::TypeError(String::NewFromUtf8(isolate,"参数错误"))); return; } //创建一个对象,用于存储素数 Local<Object>obj=Object::New(isolate); a=0; b=0; //求素数 for(i=2;i<=args[0]->NumberValue();i++){ for(j=2;j<i;j++){ if(i%j==0) a++; } if(a<1){ obj->Set(Number::New(isolate,b),Number::New(isolate,i)); b++; a=0; }else a=0; } args.GetReturnValue().Set(obj); } voidinit(Local<Object>exports){ NODE_SET_METHOD(exports,"prime",Prime); } NODE_MODULE(addon,init) }//namespacedemo安装node-gypnpm install -g

NodeJs 40160 16

作者头像SmartZ2017.06.02 23:41 

js实现图片渐显展示

图片的渐显播放[推荐][根据下面的说明进行共3步,修改图片的名称及路径即可]第三步的top:120px;left:240px可以设定显示的位置====1、将下面的代码插入到HEML的<head></head>之间:<scriptlanguage=javaScript> <!--// sandra0=newImage(); sandra0.src="image1.gif"; sandra1=newImage(); sandra1.src="image2.gif"; sandra2=newImage(); sandra2.src="image3.gif"; vari_strngth=1 vari_image=0 varimageurl=newArray() imageurl[0]="图片名称1.gif" imageurl[1]="图片名称2.gif" imageurl[2]="图片名称3.gif" functionshowimage(){ if(document.all){ if(i_strngth<=110){ testimage.innerHTML="<imgstyle='filter:alpha(opacity="+i_strngth+")'src="+imageurl[i_image]+"border=0>"; i_strngth=i_strngth+10 vartimer=setTimeout("showimage()",100) }else{ clearTimeout(timer) vartimer=setTimeout("hideimage()",1000) } } if(document.layers){ clearTimeout(timer) document.testimage.document.write("<imgsrc="+imageurl[i_image]+"border=0>") document.close() i_image++ if(i_image>=imageurl.length){i_image=0} vartimer=setTimeout("showimage()",2000) } } functionhideimage(){ if(i_strngth>=-10){ testimage.innerHTML="<imgstyle='filter:alpha(opacity="+i_strngth+")'src="+imageurl[i_image]+"border=0>"; i_strngth=i_strngth-10 vartimer=setTimeout("hideimage()",100) }else{ clearTimeout(timer) i_image++ if(i_image>=imageur

javascript 21329 7

作者头像SmartZ2017.06.02 23:29 

JavaScript中的CSS属性对照表(新手必备)

JavaScript中的CSS属性对照表是js初学者必备的基础知识 盒子标签和属性对照CSS语法 (不区分大小写)JavaScript语法 (区分大小写)borderborderborder-bottomborderBottomborder-bottom-colorborderBottomColorborder-bottom-styleborderBottomStyleborder-bottom-widthborderBottomWidthborder-colorborderColorborder-leftborderLeftborder-left-colorborderLeftColorborder-left-styleborderLeftStyleborder-left-widthborderLeftWidthborder-rightborderRightborder-right-colorborderRightColorborder-right-styleborderRightStyleborder-right-widthborderRightWidthborder-styleborderStyleborder-topborderTopborder-top-colorborderTopColorborder-top-styleborderTopStyleborder-top-widthborderTopWidthborder-widthborderWidthclearclearfloatfloatStylemarginmarginmargin-bottommarginBottommargin-leftmarginLeftmargin-rightmarginRightmargin-topmarginToppaddingpaddingpadding-bottompaddingBottompadding-leftpaddingLeftpadding-rightpaddingRightpadding-toppaddingTop颜色和背景标签和属性对照CSS语法 (不区分大小写)JavaScript语法 (区分大小写)backgroundbackgroundbackground-attachmentbackgroundAttachmentbackground-colorbackgroundColorbackground-imagebackgroundImagebackground-positionbackgroundPositionbackground-repeatbackgroundRepeatcolorcolor样式标签和属性对照CSS语法 (不区分大小写)JavaScript语法 (区分大小写)displaydisplaylist-style-typelistStyleTypelist-style-imagelistStyleImagelist-style-positionlistStylePositionlist-stylelistStylewhite-spacewhiteSpace文字样式标签和属性对照CSS语法 (不区分大小写)JavaScript语法 (区分大小写)fontfontfont-familyfontFamilyfont-sizefontSizefont-stylefontStylefont-variant

CSS 2827 2

作者头像zyw3272017.06.02 18:44 

mysql相关状态信息

Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。Connections 试图连接MySQL服务器的次数。Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。Delayed_writes 用INSERT DELAYED写入的行数。Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。Flush_commands 执行FLUSH命令的次数。Handler_delete 请求从一张表中删除行的次数。Handler_read_first 请求读入表中第一行的次数。Handler_read_key 请求数字基于键读行。Handler_read_next 请求读入基于一个键的一行的次数。Handler_read_rnd 请求读入基于一个固定位置的一行的次数。Handler_update 请求更新表中一行的次数。Handler_write 请求向表中插入一行的次数。Key_blocks_used 用于关键字缓存的块的数量。Key_read_requests 请求从缓存读入一个键值的次数。Key_reads 从磁盘物理读入一个键值的次数。Key_write_requests 请求将一个关键字块写入缓存次数。Key_writes 将一个键值块物理写入磁盘的次数。Max_used_connections 同时使用的连接的最大数目。Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。Open_tables 打开表的数量。Open_files 打开文件的数量。Open_streams 打开流的数量(主要用于日志记载)Opened_tables 已经打开的表的数量。Questions 发往服务器的查询的数量。Slow_queries 要花超过long_query_time时间的查询数量。Threads_connected 当前打开的连接的数量。Threads_running 不在睡眠的线程数量。Uptime 服务器工作了多少秒。show status like '%connect%';查看连接数show processlist 显示当前正在执行的mysql连接mysqladmin -u -p -h status 显示当前mysql状态

mysql 832 2

作者头像zyw3272017.06.02 18:40 

linux下创建交换分区

1. 创建分区文件, 大小 2Gddif=/dev/zeroof=/swapfilebs=1kcount=20480002. 生成 swap 文件系统mkswap/swapfile3. 激活 swap 文件swapon/swapfile这样就木有问题了, 但是这样并不能在系统重启的时候自动挂载交换分区, 这样我们就需要修改 fstab.修改 /etc/fstab 文件, 新增如下内容:/swapfileswapswapdefaults00这样每次重启系统的时候就会自动加载 swap 文件了.如果不想使用需要删除,只需要执行#swapoff /swapswappiness的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。linux的基本默认设置为60,具体如下:一般默认值都是60 [root@timeserver~]#cat/proc/sys/vm/swappiness60也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。临时调整的方法如下,我们调成10:[root@timeserver~]#sysctlvm.swappiness=10vm.swappiness = 10[root@timeserver~]#cat/proc/sys/vm/swappiness10这只是临时调整的方法,重启后会回到默认设置的要想永久调整的话,需要将需要在/etc/sysctl.conf修改,加上:[root@timeserver~]#cat/etc/sysctl.conf#Controlsthemaximumnumberofsharedmemorysegments,inpages kernel.shmall=4294967296 vm.swappiness=10激活设置[root@timeserver~]#sysctl-p在Linux中,可以通过修改swappiness内核参数,降低系统对swap的使用,从而提高系统的性能。遇到的问题是这样的,新版本产品发布后,每小时对内存的使用会有一个尖峰。虽然这个峰值还远没有到达服务器的物理内存,但确发现内存使用达到峰值时系统开始使用swap。在swap的过程中系统性能会有所下降,表现为较大的服务延迟。对这种情况,可以通过调节swappiness内核参数降低系统对swap的使用,从而避免不必要的swap对性能造成的影响。简单地说这个参数定义了系统对swap的使用倾向,默认值为60,值越大表示越倾向于使用swap。可以设为0,这样做并不会禁止对swap的使用,只是最大限度地降低了使用swap的可能性。通过sysctl -q vm.swappiness可以查看参数的当前设置。修改参数的方法是修改/etc/sysctl.conf文件,加入vm.swappiness=xxx,并重起系统。这个操作相当于是修改虚拟系统中的/proc/sys/vm/swappiness文件,将值改为XXX数值。如果不想重起,可以通过sysctl -p动态加

linux 781 3

作者头像zyw3272017.06.02 18:32 

svn之版本库迁移

svn版本库的迁移将一台服务器上已有的SVN仓库数据整体迁移到另外一台机器上,要保留所有的版本号和版本信息,需要以下过程来解决第一步: 将准备要迁移的仓库导出 命令:svnadmindump仓库名>svn_dump第二步: 在新的服务器上创建心的仓库 命令:svnadmincreateSVNROOT第三步: 导入刚导出的文件svn_dump 命令:svnadminloadSVNROOT<svn_dump// 注意,以上操作会导致所有的配置丢失,比如密码、权限控制等,只要将原有的conf文件覆盖新的就可以了在整个操作的过程中要注意仓储路径问题,为避免出错,可以使用绝对路径来表示以上内容,仅以No.3 做实例解析svnadminload/data/SVNROOT</data/svn_dump解析:新的仓储SVNROOT就创建在/data目录下,而导出的文件也已将放在了/data目录下网上有提供一种直接将原仓库目录copy到另一台机器上,然后修改apache 的svn路径指向新的地址的做法,我也尝试过一次,发现有丢失信息,具体不详,所以不推荐还有一个问题,我查看我的原始准备导出的仓库文件大小只有2.2G左右,而使用svnadmin 命令导出后的文件却有5G之多,中间的差别我也不甚了解,所以推荐使用svn的命令导入仓库

svn 579 2

作者头像zyw3272017.06.02 18:21 

linux下svn的使用

1.安装服务#安装apache服务 yuminstallhttpd #安装svn服务和httpd模块 yuminstallsubversionmod_dav_svn 2. 创建svn仓库#创建仓库目录 mkdir-p/var/www/svn #创建svn仓库 svnadmincreate/var/www/svn/project #配置改仓库的配置文件 vim/var/www/svn/project/conf/svnserve.conf #禁用匿名用户并开启验证用户权限。 anon-access=none auth-access=write 3.svn整合apache#配置subversion.conf文件如下内容: LoadModuledav_svn_modulemodules/mod_dav_svn.so LoadModuleauthz_svn_modulemodules/mod_authz_svn.so <Location/project> DAVsvn SVNPath/var/www/svn/project/ AuthTypeBasic AuthName"svn" AuthUserFile/var/www/svn/project/conf/passwd Requirevalid-user </Location>#修改/var/www/svn权限 chownapache.apache/var/www/svn-R chmod777/var/www/svn-R #关闭SELinux setenforce0 #重启apache服务 servicehttpdrestart 4.创建svn用户cd/var/www/svn/project/conf #使用htpasswd创建用户,首次创建用户 htpasswd-cbpasswduserpassword #添加用户 htpasswd-bpasswdnew-usernew-password #删除用户 htpasswd-Dpasswduser #修改用户密码 htpasswdpasswduser 5.配置svn权限#编辑authz文件,设置guest组包含test和abc两个用户。 [groups] guest=test,abc #配置组权限,设置根目录下guest组为可读写,其他用户为可读。 [/] guest=rw *=r 6.启动svn服务#关闭svn服务 killallsvnserve #启动svn服务 svnserve-d-r/var/www/svn/project 7.客户端测试svn在浏览器中输入http://IP/project输入用户名和密码即可访问

svn 740 3

作者头像zyw3272017.06.02 18:05 

linux node的编译安装

linux下编译安装node:yuminstallgcc yuminstallgcc-c++ yuminstallopenssl* yuminstall-ybzip2* yum-yinstallpython ./configure--prefix=/usr/local/node make&&makeinstall ln-s/usr/local/node/bin/*/usr/local/bin cd/usr/local/node/lib/node_modules/npm ./configure make&&makeinstall2、修改profile文件:#vi/etc/profile在里面加入:exportPATH="$PATH:/opt/au1200_rm/build_tools/bin"让环境变量立即生效需要执行如下命令:#source/etc/profile ln-s/usr/bin/npm/usr/local/node/bin/npm

node 39880 9

作者头像congming2017.06.02 13:14 

JavaScript阻止事件冒泡

当一个div1包含另一个div2时,为了阻止点击div2而触发div1的点击事件,可以使用如下方法:div2.onclick=function(e){ e=e||window.event; if(e.stopPropagation){//W3C阻止冒泡方法 e.stopPropagation(); }else{ e.cancelBubble=true;//IE阻止冒泡方法 } }vue与js阻止事件冒泡行为的方式

javascript 3855 5

a6bfb44cbd5549740eb36647f36ef83a