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循环遍历:
var coolies = document.cookie.split(';');
for(var i = 0,count = cookies.length; i<count;i++){ }
创建程序库:
// This script defines an object that has some cookie functions. // Create one global object:
var COOKIE = { // Function for setting a cookie:
setCookie: function(name, value, expire) {
'use strict'; // Add validation! // Begin creating the value string:
var str = encodeURIComponent(name) + '=' + encodeURIComponent(value);
//encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。避免可能有问题的字符,预防服务器问题
// Add the expiration:
str += ';expires=' + expire.toGMTString(); // Create the cookie:
document.cookie = str; }, // End of setCookie() function. // Function for retrieving a cookie value:
getCookie: function(name) {
'use strict'; // Useful to know how long the cookie name is:
var len = name.length; // Split the cookie value:
var cookies = document.cookie.split(';'); // Loop through the values:
for (var i = 0, count = cookies.length; i < count; i++) { // Lop off an initial space:
var value = (cookies[i].slice(0,1) == ' ') ? cookies[i].slice(1) : cookies[i]; // Decode the value:
value = decodeURIComponent(value); // Check if this iteration matches the name:
if (value.slice(0,len) == name) { // Return the part after the equals sign:
return value.split('=')[1]; } // End of IF. } // End of FOR loop. // Return false if nothing's been returned yet:
return false; }, // End of getCookie() function. // Function for deleting cookies:
deleteCookie: function(name) {
'use strict';
document.cookie = encodeURIComponent(name) + '=;expires=Thu, 01-Jan-1970 00:00:01 GMT';
} // End of deleteCookie() function. }; // End of COOKIE declaration.
定时器:
- setTimeOut()
- setInterval():指定时间间隔重复调用函数,必须有终止定时器的代码
函数不能保证在精确的时间间隔调用,因为单线程。
定时器主要用于动画、特效、页面自动更新内容。
JavaScript学习心得(八)的更多相关文章
- WGZX:javaScript 学习心得--2
转贴javascript心得(二) 标签: javascriptajaxweb开发htmlfirefox框架 2008-09-11 10:56 636人阅读 评论(0) 收藏 举报 分类: UI(2 ...
- WGZX:javaScript 学习心得--1
标签: javascriptiframedreamweaver浏览器htmltable 2008-09-11 10:50 1071人阅读 评论(0) 收藏 举报 分类: UI(21) 1,docu ...
- JavaScript学习心得
javaScript十分的强大,所以自然而然学起来也是不易的,想要掌握它的核心,把它理解透更是不易的,但只要你能够静下心来,耐心的去钻研,学习,还是可以把它给学好的,加油吧! 下面是一些JavaScr ...
- JavaScript学习笔记八
本文依据慕课网课程<JavaScript进阶>学习整理 第8章 浏览器对象 8-1 window对象 window对象是BOM的核心.window对象指当前的浏览器窗体. wind ...
- JavaScript学习心得(十)
Ajax Ajax是浏览器中使用JavaScript进行服务器后台请求,读取附加信息或者导致服务器响应的过程. Ajax广泛用于从服务器读取数据,并用所得到的数据更新页面,以及向服务器发送数据 Aja ...
- JavaScript学习心得(七)
一 创建事件监听器 开发人员往往使用事件和元素组合来命名事件处理函数. 创建事件监听器方法: 嵌入式事件处理器即将JavaScript函数赋值给HTML元素属性(不推荐使用:污染HTML:无法应用渐进 ...
- JavaScript学习心得(六)
函数 对函数参数没有任何类型检查(弱类型),在必要时在函数内加上类型检查(typeof): JavaScript的函数参数无法设置默认值(可以通过检查参数,当为undefined时设置一个值 func ...
- JavaScript学习心得(五)
一时间 1970年1月1日是电脑常用的时间参考点,称为纪元(Epoch)或者UNIX时间戳(UNIX Epoch).JavaScript中的Date对象能够表示1970年1月1日子夜前后1亿天之内的任 ...
- JavaScript学习心得(四)
条件语句 任何事物非真即假. 在JavaScript中,条件判断以下情况为假: false NaN 0 空串 null undefined 在使用相等运算符时,建议将数字写在相等运算符的左边.全等比较 ...
随机推荐
- 机器学习笔记1——Linear Regression with One Variable
Linear Regression with One Variable Model Representation Recall that in *regression problems*, we ar ...
- 改变JVM中的参数以提高Eclipse的运行速度
首先建立评估体系,将workspace里所有的项目close掉,关闭eclipse.优化的用例就是启动eclipse,open一个项目,eclipse会自动build这个项目,保证没有感觉到明显的卡, ...
- Java NIO使用及原理分析(三)
在上一篇文章中介绍了缓冲区内部对于状态变化的跟踪机制,而对于NIO中缓冲区来说,还有很多的内容值的学习,如缓冲区的分片与数据共享,只读缓冲区等.在本文中我们来看一下缓冲区一些更细节的内容. 缓冲区的分 ...
- angular js 表单验证
<!doctype html> <html ng-app="myapp"> <head> <meta charset="UTF- ...
- Hibernate的集合映射(Set、List、Array、Map、Bag)
POJOs如下: Customer类------>customer表 Order类对应---------->orders表 customer(1)<-------------- ...
- hdu2041java
超级楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- eclipse中svn插件的安装
Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了SVN.Subversion项目的初衷是为了替换当年开源社区最为流行的版本控制软件 ...
- ubuntu中使用nginx把本地80端口转到其他端口
ubuntu中使用nginx把本地80端口转到其他端口 因为只是在开发的过程中遇到要使用域名的方式访问, 而linux默认把1024以下的端口全部禁用. 在网上找了N多方式开启80端口无果后, 方才想 ...
- python实时处理log文件脚本
这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一 ...
- 加密算法 DES 3DES RSA AES 简介
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为[密文],使其只能在输入相应的[密钥]之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人 ...