网站速度优化
使用站长工具查询网站,发现自己网站的访问速度明显低于朋友的网站。而都是使用阿里云,网站速度却差别很大。
使用百度统计,分析了一下网站速度,百度也给了一下建议方法。
优化了一下,速度稍微好了一些。记录下自己的优化方法。
1.合并压缩css和js合并文件能够将多次请求变一次。同时压缩文件大小,也能加快速度。网上有很多压缩工具可以直接使用。
2.使用css sprites合并图片一个网站经常使用小图标,这些小图片占用了大量的HTTP请求,因此可以采用sprites的方式把所有的图片合并成一张图片。
3.将js引用放在文件末尾,js放在外部文件中将JS代码放置外部文件中,通过JS调用。JS代码搜索引擎是不能读取的,放一堆在页面中太占地方了,我们同样跟CSS一样放置到外部文件中,通过<script type="text/javascript" language="javascript"src="JS文件路径"></scpirt> 这种形式来调用。同时文件加载需要时间,放在末尾时,最后加载,不影响主体文件的展示。 ...
JS事件首页有效次页无效
今天使用JS写一个click事件,发现首页有效次页无效。页面使用Jquery的datatable的AJAX分页。
对表格中的一行数据点击修改时,弹出修改框。使用class绑定。
123$('.editbtn').on('click',function(){ alert("hello");});
表格列表第一页能够正常点击,但是发现在ajax翻页到第二页时,点击无效。思考好久都没有解决。
最终同事帮忙解决。解决方式如下
1234567//tbl_content为table上的ID$('#tbl_content').on('click',function(e){ var e = e || event; if( $(e.target).hasClass('editbtn') ){ alert("hello"); }});
此时促使想根据详细的了解js的事 ...
centos6.5编译安装php7及LNMP环境
实践centos6.5编译安装 php7的LNMP生产环境
费时接近2天,终于成功编译安装了LNMP环境,使用php7。中间遇到很多问题,费时好久终于解决期间出现yum install 出错, 提示Cannot find a valid baseurl for repo: PUIAS_6_computational找好久,发现是镜像源配置错误 删除/etc/yum.repos.d/PUIAS_6_computational 重新配置镜像
一、准备工作:1、建立一个软件包目录存放,最小化安装centos6.5
12345678910111213141516171819202122mkdir -p /usr/local/src/#清理已经安装包rpm -e httpdrpm -e mysqlrpm -e phpyum -y remove httpdyum -y remove mysqlyum -y remove php#搜索apache包rpm -qa http*#强制卸载apache包rpm -e --nodeps #查询出来的文件名 例如rpm -e mysql-libs-5.1.73 ...
一键安装Redmine
1.简介对于一个新手,按照官方文档来安装redmine,非常复杂。BitNami提供redmine的一键安装程序,简单、易用、方便。
2.安装BitNami提供redmine的一键安装程序,地址:http://bitnami.org/stack/redmine.不仅仅是windows的有一键安装程序,linux也有一键安装程序。
我的安装环境是windows 7,下载地址https://bitnami.com/redirect/to/98612/bitnami-redmine-3.2.1-0-windows-installer.exe
跟大部分windows安装程序一样,一路默认“下一步”即可。需要注意的是,创建管理员账号的时候,需要将用户名称和密码记录下来,此用户即为redmine安装好后的管理员账号
注意:如果已经安装了apache和mysql,端口号就不能用80端口和3306端口,会提示端口已经被占用。我使用的82端口和3307端口
安装完后会自动打开浏览器,点击“Access BitNami Redmine Stack”即可访问redmine。输入管理员账号和密码,即可登录re ...
window版vcruntime140.dll丢失
前几天在公司的电脑新电脑上安装wamp最新版(php5.6和7),启动时,提示丢失vcruntime140.dll文件。
公司电脑window10,电脑是新的,刚新安装的系统。百度了很久,有说需要下载这个文件,然后在注册表注册。尝试下载,然后copy到对应目录,但是不管用。
后来才找到关键原因。原来需要安装微软的vc++2015版本才行
下载地址在下方:
VC14需要
http://www.microsoft.com/en-us/download/details.aspx?id=46881
VC11需要
http://www.microsoft.com/en-us/download/details.aspx?id=30679
VC9需要
64bit: http://www.microsoft.com/en-us/download/details.aspx?id=15336
32bit: http://www.microsoft.com/en-us/download/details.aspx?id=5582
Linux下php安装Memcache扩展
1、安装memcache1234567891011121314wget http://pecl.php.net/get/memcache-3.0.8.tgz tar -vxzf memcache-3.0.8.tgz #解压 cd memcache-3.0.8 #进入安装目录 /usr/bin/phpize #用phpize生成configure配置文件,可以使用which phpize查看路径 #配置 笔者的php-config目录为/usr/bin/php-config,可以使用php-config查看路径./configure --enable-memcache --with-php-config=/usr/bin/php-config --with-zlib-dir make #编译 make install #安装
安装完成之后,出现下面的安装路径
12/usr/lib64/php/modules/ls /usr/lib64/php/modules/ #检查是否成功生成了.so文件
2、配置php支持1234vi /etc/php.ini #编辑配置文件,在最 ...
商城秒杀等高并发活动的处理
秒杀抢购活动是现在很多商城常见的营销手段,小米抢购、淘宝的整点免单、聚划算等都是成功的例子。
从简单处着手,秒杀是很好理解的:设置要秒杀的商品的数量,抢完为止。但是,实际应用中一瞬间的高并发压力、以及并发带来的负库存是要着重考虑。
要避免负库存的出现,可以在数据库加锁,不管外部多少请求,都可以在数据库操作前给阻断。当然,这种思路可以用在流量不大的普通商品上,用在高并发的秒杀商品上显然是不合适的,直接高频率的读写操作数据库,对数据库的压力太大,严重拖性能,量大的话挂掉也是很有可能的。
这时候就需要用到缓存队列了,现在前面应用层处理并发,这个资源的消耗是比较小的,内存中的处理效率也会很快。队列处理完之后再向数据库层进行请求操作。
当然,有时候还有可能会用到文件排他锁,在处理一个订单的时候,使用flock锁定文件,如果锁定失败说明有其他进程正在锁文件处理订单,返回失败。但是只使用这个的话,个人感觉不太好,我宁愿让用户在队列中多等待几秒,也不想直接返回失败。可以在缓存队列到数据库的时候使用下这个,多加一层安全系数。
模拟场景:商城做一个秒杀活动,秒杀的商品数量为10,秒到即得。
方案:1、应用 ...
Apache与Nginx的优缺点比较
Apache与Nginx的优缺点比较
1、优缺点对比nginx相对于apache的优点:
轻量级,同样起web 服务,比apache 占用更少的内存及资源
抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊
apache 相对于nginx 的优点:
rewrite ,比nginx 的rewrite 强大
模块超多,基本想到的都可以找到
少bug ,nginx 的bug 相对较多
超稳定存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。当然, ...
Markdown基本语法
Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。
一、认识 Markdown
在刚才的导语里提到,Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。目前来看,支持 Markdown 语法的编辑器有很多,包括很多网站(例如简书)也支持了 Markdown 的文字录入。Markdown 从写作到完成,导出格式随心所欲,你可以导出 HTML 格式的文件用来网站发布,也可以十分方便的导出 PDF 格式,这种格式写出的简历更能得到 HR 的好感。甚至可以利用 CloudApp ...
GitLab自动化发布
钩子(hooks)Git是在特定事件发生之前或之后执行特定脚本代码功能(从概念上类比,就与监听事件、触发器之类的东西类似)。Git Hooks就是那些在Git执行特定事件(如commit、push、receive等)后触发运行的脚本。gitlab的web hooks跟git hook类似。也是当项目发生提交代码、提交tag等动作会自动去调用url,这个url可以是更新代码。或者其他操作。
配置目的:由于系统属于后台接口系统,开发提交完git仓库后要实时的部署到测试环境,这时候就需要用到gitlab的web hooks自动更新部署了。客户端:要自动更新的测试服务器IP:192.168.1.2服务端:Gitlab服务器IP:192.168.1.1Gitlab Version: 7.13.0.preGitLab-Shell Version: 2.6.3
1、在客户端上面配置apache配置文件,为web hooks添加一个接口访问
123456789101112131415161718#vim /usr/local/apache/conf/httpd.conflisten 81ServerA ...