網頁存儲倒計時與解決網頁cookie保存多個相同key問題


短信倒計時多用網頁臨時存儲,這可以保證網頁在關閉狀態也可記時。

 1 <p class="test_button" id="getcode">獲取驗證碼</p>
 2 
 3 <script type="text/javascript">
 4 //加載頁面訪問cookie,防止關閉網頁
 5 var t=getCookie("codeTime")>0?setCodeTime($("#getcode")):"";
 6 
 7 //短信倒計時事件
 8 var countdown;
 9 function setCodeTime(obj){
10     countdown=getCookie("codeTime");
11     if (countdown == 0) {
12         obj.html("獲取驗證碼"); 
13         clearTimeout(mobRandomTime);
14         delCookie("codeTime");
15         return;
16     } else { 
17         obj.html(countdown + "秒重發"); 
18         countdown--;
19         editCookie("codeTime",countdown,countdown);
20      } 
21     mobRandomTime=setTimeout(function() { setCodeTime(obj) },1000) //每1000毫秒執行一次}
22 
23 //短信發送事件,設定短信間隔
24 function phoneNote(obj,timeInterval){
25     var obj=obj;
26     addCookie("codeTime",timeInterval,timeInterval);
27     setCodeTime(obj);
28 }
29 //觸發短信發送
30 $("#getcode").click(function(){
31     var t=getCookie("codeTime")>0?"":phoneNote($("#getcode"),10);
32 })
33 </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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM