session_cache_limiter(private,must-revalidate)表单页面回跳

news/2024/7/5 23:56:33 标签: session, cache, header, ajax, php, 浏览器

session_cache_limiter(private,must-revalidate)是什么意思
//注意要写在session_start方法之前

表义一:

指定会话页面所使用的缓冲控制方法:
session_cache_limiter('private')时,用处是让表单window.history.go(-1)的时候,填写内容不丢失!就避免页面失效的警告!

表义二:

这个会话与header('cache-control:private,must_revalidate');效果相同

 

但是要值得注意的是session_cache_limiter()方法要写在session_start()方法之前才有用;

 

支持页面回跳详解,session_cache_limiter()的使用详解

 

现在表单的填写,我们可以用AJAX对用户随时进行验证,进行友好的提示,但是在用户没有留意AJAX友好提示,提交了错误的表单,跳回原页,而填写的信息却全部丢失了。要支持页面回跳,有以下的办法:

1.使用session_cache_limiter方法:

Php代码
session_cache_limiter('private,must-revalidate');  

session_cache_limiter('private,must-revalidate');

但是要值得注意的是session_cache_limiter()方法要写在session_start()方法之前才有用;

2.用header来设置控制缓存的方法:

 

在开发过程中,往往因为表单出错而返回页面的时候填写的信息都不见了,为了支持页面回跳,可以通过两种方法实现。

第一,使用Header方法设置消息头Cache-control 
引用:
header('Cache-control: private, must-revalidate');//支持页面回跳
第二,使用session_cache_limiter方法 
引用:
//注意要写在session_start方法之前
session_cache_limiter('private, must-revalidate');

补充:
Cache-Control消息头域说明
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if- cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must- revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下:

Public指示响应可被任何缓存区缓存。

Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。

no-cache指示请求或响应消息不能缓存

no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。

max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

关于表单刷新

问:为什么我在点击浏览器的后退按钮后,所有字段的信息都被清空了?

答:这是由于你在你的表单提交页面中使用了 session_start 函数。该函数会强制当前页面不被缓存。解决办法为,在你的 Session_start 函数后加入 header(双引号Cache-control: private双引号); 注意在本行之前你的PHP程序不能有任何输出。

补充:还有基于session的解决方法,在session_start前加上 
引用:
session_cache_limiter('nocache');// 清空表单
session_cache_limiter('private'); //不清空表单,只在session生效期间
session_cache_limiter('public'); //不清空表单,如同没使用session一般

可以在session_start();前加上 session_cache_limiter('private,max-age=10800');

来源:http://hi.baidu.com/chickenlove/blog/item/78f78a873384a93dc65cc395.html


http://www.niftyadmin.cn/n/888572.html

相关文章

Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:2.1.1 or one of its

创建Maven文明间有错误 解决办法 1、确认windows -> Preferences -> maven 的settings.xml文件中,设置代理,很多可能是你设置出现错误. 2、C:\Users\ttt.m2\repository\org\apache\maven\plugins目录下的文件夹全部删除,重新下载。 3.重启eclipse

四川大学计算机专业《高级语言程序设计-I》实验合辑

四川大学计算机专业高级语言程序设计-I实验合辑C语言游戏设计作业包-小兔跳铃铛.rar. C/C大作业 小游戏 滑块拼图贪吃蛇.rar.

四川大学《数据库系统原理》课程资源汇总

四川大学《数据库系统原理》课程资源汇总课程资料: 期末复习资料: (真题与解析) 2007年《数据库系统原理》期末A卷(原卷答案). 2009年《数据库系统原理》期末A卷(原卷答案). 2011年…

mysql创建触发器代码

首先我们当在表t_user注册用户的时候需要让我的mybank表创建money字段为0.0,当然money的字段为自增字段,所以只需要插入对应money t_user mybank DELIMITER $$ CREATE TRIGGER user_mybank AFTER INSERT ON t_user FOR EACH ROW BEGIN DECLARE s1 DOUBLE; SET s1 0.0; I…

四川大学《计算机导论》课程资源汇总

四川大学《计算机导论》课程资源汇总课程资料: 计算机科学概论 内尔戴尔 第五版全书答案.pdf. 四川大学 计算机导论 课程ppt全.rar. 四川大学计算机导论课程大作业-办公软件(高分).rar.

四川大学计算机学院《数字逻辑(双语)》课程资源汇总

四川大学计算机学院《数字逻辑(双语)》课程资源汇总课程资料: 数字电子技术(第10版)英文版答案.zip. 最高分实验报告: 第三章实验报告 实现布尔表达式-四川大学数字逻辑高分实验报告.doc. 第四章实验报告 …

mysql删除自增和创建自增

ALTER TABLE logtable CHANGE logid logid INT AUTO_INCREMENT; ALTER TABLE logtable CHANGE logid logid INT(3) UNSIGNED NOT NULL ;

四川大学《实验室安全与环境保护》课程资源汇总

四川大学《实验室安全与环境保护》课程资源汇总课程资料: 四川大学-实验室安全与环境保护-中国大学mooc答案-全. 满分实验报告: 室内火灾认识与逃生实验报告-四川大学实验室安全与环境保护满分实验报告.pdf. 初期火灾处置实验报告-四川大学实验室安全与…