短信倒计时多用网页临时存储,这可以保证网页在关闭状态也可记时。

 <p class="test_button" id="getcode">获取验证码</p>

 <script type="text/javascript">
//加载页面访问cookie,防止关闭网页
var t=getCookie("codeTime")>0?setCodeTime($("#getcode")):""; //短信倒计时事件
var countdown;
function setCodeTime(obj){
countdown=getCookie("codeTime");
if (countdown == 0) {
obj.html("获取验证码");
clearTimeout(mobRandomTime);
delCookie("codeTime");
return;
} else {
obj.html(countdown + "秒重发");
countdown--;
editCookie("codeTime",countdown,countdown);
}
mobRandomTime=setTimeout(function() { setCodeTime(obj) },1000) //每1000毫秒执行一次} //短信发送事件,设定短信间隔
function phoneNote(obj,timeInterval){
var obj=obj;
addCookie("codeTime",timeInterval,timeInterval);
setCodeTime(obj);
}
//触发短信发送
$("#getcode").click(function(){
var t=getCookie("codeTime")>0?"":phoneNote($("#getcode"),10);
})
</script>

在当前页状态,每秒获取并修改cookie。

同时Cookie不仅仅有名字和值两个属性,还有域(domain),过期时间(expires),路径(path)等属性。 其中,不同的域、不同的路径下可以存在同样名字的cookie。

 1 //添加cookie
2 function addCookie(name,value,expireHours){
3 var cookieString=name+"="+escape(value)+"; path=/";//注意红色话语,这是保证不会出现多个key的,只修改对应路径的key
4 //判断是否设置过期时间
5 if(expireHours>0){
6 var date=new Date();
7 date.setTime(date.getTime+expireHours*1000);
8 cookieString=cookieString+"; expire="+date.toGMTString();
9 }
10 document.cookie=cookieString;
11 }
12 //获取cookie
13 function getCookie(name){
14 var strcookie=document.cookie;
15 var arrcookie=strcookie.split("; ");
16 for(var i=0;i<arrcookie.length;i++){
17 var arr=arrcookie[i].split("=");
18 if(arr[0]==name)return arr[1];
19 }
20 return "";
21 }
22 //修改cookie的值
23 function editCookie(name,value,expiresHours){
24 var cookieString=name+"="+escape(value)+"; path=/";//注意红色话语,这是保证不会出现多个key的,只修改对应路径的key
25 if(expiresHours>0){
26 var date=new Date();
27 date.setTime(date.getTime()+expiresHours*1000); //单位是毫秒
28 cookieString=cookieString+";expires=" + date.toGMTString();
29 }
30 document.cookie=cookieString;
31 }
32 //删除cookie
33 function delCookie(name){//删除cookie
34 var exp = new Date();
35 exp.setTime(exp.getTime() - 1);
36 var cval=getCookie(name);
37 if(cval!=null) document.cookie= name + "="+cval+"; path=/;expires="+exp.toGMTString();
38 }

网页存储倒计时与解决网页cookie保存多个相同key问题的更多相关文章

  1. 第89天:HTML5中 访问历史、全屏和网页存储API

    一.访问历史 API 通过history对象实现前进.后退和刷新之类的操作 history新增的两个方法history.replaceState()和history.pushState()方法属于HT ...

  2. 使用canvas截图网页为图片并解决跨域空白以及模糊问题

    前几天给了个需求对浏览器网页进行截图,把网页统计数据图形表等截图保存至用户本地. 首先对于网页截图,我用的是canvas实现,获取你需要截图的模块的div,从而使用canvas对你需要的模块进行截图. ...

  3. URLRedirector 解决网页上无法访问 google CDN 的问题(fonts、ajax、themes、apis等)

    URLRedirector 解决网页上无法访问 google CDN 的问题(fonts.ajax.themes.apis等) 由于某些原因,在访问国外的网站时有时候会特别慢,像 stackoverf ...

  4. 使用history.back()出现"警告: 网页已过期的解决办法"

    原因: 表单提交页面中使用了 session_start 函数.由于我们后退浏览的是缓存页,而该函数会强制当前页面不被缓存. 解决: PHP: 此提示出现在一个POST提交的页面,点到其它页面后,通过 ...

  5. 利用Readability解决网页正文提取问题

    分享: 利用Readability解决网页正文提取问题   做数据抓取和分析的各位亲们, 有没有遇到下面的难题呢? - 如何从各式各样的网页中提取正文!? 虽然可以用SS为各种网站写脚本做解析, 但是 ...

  6. 解决网页中Waiting (TTFB)数据加载过慢的问题

    解决网页中Waiting (TTFB)数据加载过慢的问题 最近做了一个网页,在本地测试良好,数据可以得到很快的反馈,但是当部署到云端Linux上时候,就会出现加载缓慢的问题.本地测试,得到数据大概3s ...

  7. 本地存储sessionStorage 、 localStorage 、cookie整理

    sessionStorage . localStorage .cookie 的区别 sessionStorage 和 localStorage 是HTML5 Web Storage API 提供的,可 ...

  8. 浏览器存储localStorage、sessionStorage、cookie

    localStorage和sessionStorage浏览器支持IE8+(测试IE8不行): localStorage:用于长久保存整个网站的数据,保存的数据没有过期时间,直到手动去除 session ...

  9. JS 弹出网页 (不显示地址栏,工具栏) 网页去掉地址栏

    JS 弹出网页 (不显示地址栏,工具栏) 网页去掉地址栏 window.open()支持环境: JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+ 基本语法: ...

随机推荐

  1. 在 Keil uVision4 MDK下配置开发STM32F103Z完整教程

    转载的,请原作者勿怪,以下为原链接: http://www.51hei.com/bbs/dpj-30359-1.html(欢迎直接查看原作者) 环境搭建: 1.安装 Keil uVision4 MDK ...

  2. Ansible角色

    Ansible角色介绍 官方地址: https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html 角色目录 ...

  3. apache + php 无法访问redis

    1.在有扩展的情况下 2.测试连接 <?php $redis=new Redis(); $redis->connect('127.0.0.1',6379); echo "succ ...

  4. 使用dd生成文件

    使用dd命令快速生成大文件或者小文件的方法     转载自:http://blog.csdn.net/cywosp/article/details/9674757     在程序的测试中有些场景需要大 ...

  5. zeromq protobuf例子

    https://github.com/AifiHenryMa/zeromq_protocolbuffer_demo https://github.com/protocolbuffers/protobu ...

  6. Hadoop–Task 相关

    在MapReduce计算框架中,一个应用程序被划分为Map和Reduce两个计算阶段.他们分别由一个或多个Map Task 和Reduce Task组成. Map Task: 处理输入数据集合中的一片 ...

  7. easyui datagrid 绑定json对象属性的属性

    今天用easyui 的datagrid绑定数据时,后台提供的数据是实体类类型的,其中有一个实体类A的属性b是另一个实体类B类型的,而前台需要显示b的属性c,这下就悲剧了,前台没法直接绑定了,后来脑筋一 ...

  8. git删除远程服务的文件夹

    首先查看当前分支:git branch -a 删除缓存的idea:git rm --cached -r .idea 提交gitiginore文件,将.idea从源代码仓库中删除(-m 表示注解):   ...

  9. thinkphp 数据缓存

    在ThinkPHP中进行缓存操作,一般情况下并不需要直接操作缓存类,因为系统内置对缓存操作进行了封装,直接采用S方法即可,例如: 缓存初始化 // 缓存初始化 S(array('type'=>' ...

  10. 基于bootstrap的时间选择插件daterangepicker以及汉化方法

    双日历时间段选择插件 — daterangepicker是bootstrap框架后期的一个时间控件: 可以设定多个时间段选项:也可以自定义时间段:由用户自己选择起始时间和终止时间:时间段的最大跨度可以 ...