时间:2014-01-29所属栏目: Jquery开发 来源: 热度:
HTTP是一个无状态的协议,这意味着每个请求您对网站是独立的,因此不能保持本身的数据。这也是其在早期网站会普遍采用的的原因之一。
然而,有一种方法通过缓存保存信息的形式,他可以有效地保持会话和数据的持久性。
有两种方法可以建立缓存,分别是服务器端(PHP,ASP等)和客户端(JavaScript).今天,我们来看看如果在服务器端和客户端建立缓存。
在PHP中建立cookie,你需要使用到SetCookie函数,它有大量的参数(除了第一个,其他都是可选的)
setcookie( 'pageVisits', // 求情的缓存名字 $visited, // 缓存属性 time()+7*24*60*60, // 到期时间,这里设置为一个星期 '/', // 缓存保存的路径 'demo.tutorialzine.com' // 域名 );
如果你传递一个到期时间为0(这是默认行为),cookie将在浏览重新启动时被清除。"/"参数表示,这将是对现有的域的所在目录(您也可以为cookie绑定一个目录,像 /admin/ )。
除了上述setcookie()函数应用到参数,还有两个额外的参考可选,但是本例子没有应用,他们指定的是一个布尔值,第一个规定是否通过安全的 HTTPS 连接来传输 cookie。第二个,该cookie是否能通过JavaScript访问(在PHP 5.2中引入)
用PHP读取一个Cookie是简单的事情。所有被传递到脚本Cookies的数据在$ _COOKIE下调用。在我们的例子中,cookie代码如下:
$visits = (int)$_COOKIE['pageVisits']+1; echo "You visited this site: ".$visits." times";
通过$_COOKIE 读取setcookie() 函数的数值。
若要删除cookie,只需用setcookie函数,设置一个到期时间。
setcookie( 'pageVisits', $visited, time()-7*24*60*60, // One week in the past. The cookie will be deleted '/', 'demo.tutorialzine.com' );
通过jquery读取cookie, 你需要用到 Cookie plugin.
设置cookies与cookie插件是非常直观
$(document).ready(function(){
// 设置一个名为kittens的cookie,它将在浏览器重启丢失:
$.cookie("kittens","Seven Kittens");
// 设置一个demoCookie的cookie,参数同php设置的类似
$.cookie("demoCookie",text,{expires: 7, path: '/', domain: 'demo.tutorialzine.com'});
// "text" 将作为变量被保存起来
});
读一个cookie就更简单了。只要应用$.cookie()函数和cookie的名字.,就能返回cookie的值。
$(document).ready(function(){
// 读取名为kittens的cookie:
var str = $.cookie("kittens");
// kittens的值是 "Seven Kittens"
});
删除一个cookie,再次使用$.cookie()函数,并将第二个参数设置为null