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 在使用相等运算符时,建议将数字写在相等运算符的左边.全等比较 ...
随机推荐
- PC-[WIN7]此计算机无法联接家庭组
不能启用 HomeGroup Listener 解决: 1.设定为自动开始:Function Discovery Provider HostFunction Discovery Resource Pu ...
- php中数组可以不写下标
<?php $array[10] = 10; for($i = 0; $i < 100; $i++){ $array[] = $i; } var_dump($array) ?> $a ...
- JMeter入门(2):一个简单实例
场景描述: 自己建立一个服务器端,接受参数:name和age,并将这些数据保存到数据库中: http://localhost:8080/Server/SaveServlet?name=xxx& ...
- 20169210《Linux内核原理与分析》第八周作业
第一部分:实验 首先还是网易云课堂的学习,这次的课程是进程的创建和进程的描述. linux进程的状态与操作系统原理中的描述的进程状态有些不同,例如就绪状态和运行状态都是TASK_RUNNING. Li ...
- 遮罩层的实现(纯js兼容版)
这个代码是我以前测试时候的代码了,主要用到的知识点是opacity和filer分别实现 “标准浏览器”和IE浏览器下的半透明,使用js的document.body.offsetwidth 和scree ...
- hdu 4523 威威猫系列故事——过生日 小模拟
威威猫系列故事——过生日 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- 如何学会web前端开发
如何学会web前端开发 http://jingyan.baidu.com/article/b7001fe17623970e7282dd0c.html http://www.yangqq.com/dow ...
- [Webpack 2] Maintain sane file sizes with webpack code splitting
As a Single Page Application grows in size, the size of the payload can become a real problem for pe ...
- mybatis10 实现类代理对象开发
mapper实现类代理对象开发 要想让mybatis自动创建dao接口实现类的代理对象,必须遵循一些规则: SqlSession sqlSession = sqlSessionFactory.open ...
- bash if 表达式
.bash把[[ $a -lt $b ]]看作一个单独的元素,并且返回一个退出码.退出码0为真,非零为假 例如: a= b=c [[ $a -lt $b ]] echo $? # a小于b为真 [[ ...