JavaScript学习心得(八)

  Cookie是Netscape发明的技术,是动态网站必不可少的部分,用于浏览器请求Web页面的超文本传输协议是一种无状态的协议。

  两种方法维护状态:使用会话(session)(使用服务器技术实现,数据存储在服务器上)和Cookie(用服务器技术或者浏览器中的JavaScript管理)。

  Cookie包含多个不相关的信息块:

  • 名称
  • 到期日期和时间:必须格式化为UTC字符串
  • 有效路径(默认为当前路径):在服务器上的有效路径
  • 域(默认当前主机)

  Cookie容易在用户计算机上看到,不该用于存储敏感信息,在过程中始终验证Cookie值。关注安全的应用程序建议始终使用由服务器技术实现的回话。

  创建Cookie: document.cookie = value; Cookie使用特定的语法——cookieName = cookieValue; document.cookie = 'fontSize = 14'; 

  读取Cookie时,是全部读取,单独读取每个Cookie,先拆解字符串然后for循环遍历:

1 var coolies = document.cookie.split(';');

2 for(var i = 0,count = cookies.length; i<count;i++){

3

4     }

 创建程序库:

 1 // This script defines an object that has some cookie functions.

 2 

 3 // Create one global object:

 4 var COOKIE = {

 5     

 6     // Function for setting a cookie:

 7     setCookie: function(name, value, expire) {

 8         'use strict';

 9 

10         // Add validation!

11 

12         // Begin creating the value string:

13         var str =  encodeURIComponent(name) + '=' + encodeURIComponent(value);

14     //encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。避免可能有问题的字符,预防服务器问题

15         // Add the expiration:

16         str += ';expires=' + expire.toGMTString(); 

17     

18         // Create the cookie:

19         document.cookie = str;

20 

21     }, // End of setCookie() function.

22     

23     // Function for retrieving a cookie value:

24     getCookie: function(name) {

25         'use strict';

26 

27         // Useful to know how long the cookie name is:

28         var len = name.length;

29         

30         // Split the cookie value:

31         var cookies = document.cookie.split(';');

32 

33         // Loop through the values:

34         for (var i = 0, count = cookies.length; i < count; i++) {

35 

36             // Lop off an initial space:

37             var value = (cookies[i].slice(0,1) == ' ') ? cookies[i].slice(1) : cookies[i];

38 

39             // Decode the value:

40             value = decodeURIComponent(value);

41 

42             // Check if this iteration matches the name:

43             if (value.slice(0,len) == name) {

44 

45                 // Return the part after the equals sign:

46                 return value.split('=')[1];

47 

48             } // End of IF.

49             

50         } // End of FOR loop.

51             

52         // Return false if nothing's been returned yet:

53         return false;

54 

55     }, // End of getCookie() function.

56     

57     // Function for deleting cookies:

58     deleteCookie: function(name) {

59         'use strict';

60         document.cookie = encodeURIComponent(name) + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT';

61     } // End of deleteCookie() function.

62 

63 }; // End of COOKIE declaration.
View Code

 定时器:

  • setTimeOut()
  • setInterval():指定时间间隔重复调用函数,必须有终止定时器的代码

  函数不能保证在精确的时间间隔调用,因为单线程。

  定时器主要用于动画、特效、页面自动更新内容。

你可能感兴趣的:(JavaScript)