熟悉Wordpress的都知道,在Apache主机并且apacahe开启allowoverride的情况下,Awordpress能够非常方便的设置其固定链接,不论wordpress是否安装下网站根目录或者二级目录下。这得益于apache具有“分布式文件管理系统”,也就是”.htaccess”这个文件,它能够非常方便的加入或者更改apache主机对当前目录的设置,包括伪静态(rewriteRule),访问权限等。当安装wordpress的时候,网站会自动在当前安装目录生成.htaccess文件,方便把网站的显示权限交给wordpress。在nginx下,一切就就没有这么方便了,nginx官方早有表态,不会支持这种分布式管理的方式,因为这样比较耗费资源。那么,在nginx主机下,怎么让wordpress和在apache主机上显示一样呢?其实主要就是伪静态的问题,我们先来看一下apache下的.htaccess文件:
…阅读更多>>
在日常的操作过程中,在所难免的需要利用Javascript在用户本地存储一些数据,以达到一些不能用服务器来识别的功能,如识别用户的第二次访问等。常用的方法有cookie,IE的userData,以及localStorage等,由于userData只有IE支持,它的可扩展性并不大。
cookie:
cookie的好处是用户每请求一次服务器数据,cookie则会随着这些请求发送到服务器,服务器脚本语言如PHP等能够处理cookie发送的数据,可以说是非常方便的。但是它的缺点也显而易见,除开我们经常说的,浏览器对cookie数量,大小的限制,我觉得更重要的一点,用js对cookie的操作相当的繁琐,浏览器只提供document.cookie这样一个对象,对cookie的赋值,获取都比较麻烦而在PHP中,我们可以通过setcookie()来设置cookie,通过$_COOKIE这个超全局数组来获取cookie。下面是我封装的Javascript操作和获取cookie的函数:
…阅读更多>>
什么是document.ready?
说document.ready之前,先要讲讲window.onload。我们知道如果在网页头部执行获取或改变dom结构的操作,必须要把相关操作函数放在window.onload当中。为什么需要这样操作呢?看看下面的例子:
<!DOCTYPE HTML>
<html lang="en">
<head>
<script>
var a=document.getElementById("demo");
alert(a);
</script>
</head>
<body>
<div id="demo">DEMO</div>
</body>
</html>
当我们访问alert(a)时,会弹出null,实际上,这是告诉我们对象没有找到,为什么呢?因为在这句代码执行的时候,后面的DOM结构并没有加载出来,所以我们用document.getElementById找不到这个对象。为了解决这个问题,我们用到了window.onload,onload这个方法是告诉浏览器,在整个HTML文档加载完毕之后执行相关代码,这样以来,就不会出现找不到对象了。
…阅读更多>>
在web前端的优化中,一个网站的打开速度仍然是衡量网站质量的重要指标之一,而网页本身的HTML文件一般都是比较小的,所以影响网页的加载速度的最关键的一般都是资源的加载速度。一个网页中的请求太多,一般情况下会严重影响打开速度。为了提高网站速度和用户体验,我们不得不减少请求数量,一方面,一些先进的技术不断的应用到实际中,如利用css sprite技术合并网页背景图片来减少请求,另一方面随着网站体积和规模的不断扩大,我们不得不把一些东西分开,以便扩展和管理。
一个大型的网站,不论是css或者Javascript等其它文件,不可能只有一个,但是从提高前端的体验来说,我们希望请求越少越好。当矛盾出现的时候,一些新技术就应运而生,Minfy就是其中优秀的代表.
…阅读更多>>
前几天在淘宝上买双色球,发现上面有个自动选号的功能,用着不错,做起来感觉也应该是比较简单的,于是就打算自己做一个。由于没有考虑周全,第一个程序虽然做出来了,却发现有很多bug,第一个是生成的结果有相同的数字,第二个生成的结果不能自动排列。
实际上它是一个很简单的问题,在一定的范围内,随机取出几个数字就行了,最重要的是取出结果之后,对相同数字的判断和排序。
首先是相同数字的判断,可以这样做,生成一个数组,每次从这个数组中随机拿出一个结果,然后删除数组的这个元素,去除的数字就不会重复;排序方面的话,可以把取出的数字组合成数组,然后利用Javascript数组的sort()进行排序,就OK了。
…阅读更多>>
前几天遇到了这样的问题:在一台Godaddy Linux环境的VPS中,我编译安装了nginx, php,mysql。由于网站比较多,我选择安装了eaccelerator来缓存php以提供响应时间,eaccelerator编译完成并通过模块方式载入到php中,一切运行正常。但是通过控制eaccelerator_control.php的控制脚本看到了共享内存只有32M,于是设置eaccelerator.shm_size=”128”,重启之后发现php-fpm启动失败,而且没有任何提示。
找了很多资料,最后在github.com上找到了如下答案:
…阅读更多>>