前端之本地存储和jqueryUI
本地存储
本地存储分为cookie,以及新增的localStorage和sessionStorage
1、cookie 存储在本地,容量最大4k,在同源的http请求时携带传递,损耗带宽,可设置访问路径,只有此路径及此路径的子路径才能访问此cookie,在设置的过期时间之前有效。
jquery 设置cookie
$.cookie('mycookie','123',{expires:7,path:'/'});
jquery 获取cookie
$.cookie('mycookie');
2、localStorage 存储在本地,容量为5M或者更大,不会在请求时候携带传递,在所有同源窗口中共享,数据一直有效,除非人为删除,可作为长期数据。
//设置:
localStorage.setItem("dat", "456");
localStorage.dat = '456'; //获取:
localStorage.getItem("dat");
localStorage.dat //删除
localStorage.removeItem("dat");
3、sessionStorage 存储在本地,容量为5M或者更大,不会在请求时候携带传递,在同源的当前窗口关闭前有效。
localStorage 和 sessionStorage 合称为Web Storage , Web Storage支持事件通知机制,可以将数据更新的通知监听者,Web Storage的api接口使用更方便。
iPhone的无痕浏览不支持Web Storage,只能用cookie。
注意,只有cookie需要使用cookie插件,webstorage不需要使用;
设置cookie插件:jquery.cookie.js
/*!
* jQuery Cookie Plugin v1.4.1
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2013 Klaus Hartl
* Released under the MIT license
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['jquery'], factory);
} else if (typeof exports === 'object') {
// CommonJS
factory(require('jquery'));
} else {
// Browser globals
factory(jQuery);
}
}(function ($) { var pluses = /\+/g; function encode(s) {
return config.raw ? s : encodeURIComponent(s);
} function decode(s) {
return config.raw ? s : decodeURIComponent(s);
} function stringifyCookieValue(value) {
return encode(config.json ? JSON.stringify(value) : String(value));
} function parseCookieValue(s) {
if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape...
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
} try {
// Replace server-side written pluses with spaces.
// If we can't decode the cookie, ignore it, it's unusable.
// If we can't parse the cookie, ignore it, it's unusable.
s = decodeURIComponent(s.replace(pluses, ' '));
return config.json ? JSON.parse(s) : s;
} catch (e) {
}
} function read(s, converter) {
var value = config.raw ? s : parseCookieValue(s);
return $.isFunction(converter) ? converter(value) : value;
} var config = $.cookie = function (key, value, options) { // Write if (value !== undefined && !$.isFunction(value)) {
options = $.extend({}, config.defaults, options); if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setTime(+t + days * 864e+5);
} return (document.cookie = [
encode(key), '=', stringifyCookieValue(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
} // Read var result = key ? undefined : {}; // To prevent the for loop in the first place assign an empty array
// in case there are no cookies at all. Also prevents odd result when
// calling $.cookie().
var cookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('=');
var name = decode(parts.shift());
var cookie = parts.join('='); if (key && key === name) {
// If second argument (value) is a function it's a converter...
result = read(cookie, value);
break;
} // Prevent storing a cookie that we couldn't decode.
if (!key && (cookie = read(cookie)) !== undefined) {
result[name] = cookie;
}
} return result;
}; config.defaults = {}; $.removeCookie = function (key, options) {
if ($.cookie(key) === undefined) {
return false;
} // Must not alter options, thus extending a fresh object...
$.cookie(key, '', $.extend({}, options, {expires: -1}));
return !$.cookie(key);
}; }));
jquery.cookie.js
cookie简单使用示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript"> // 设置cookie 过期时间为7天,存在网站根目录下
//$.cookie('mycookie','ok!',{expires:7,path:'/'}); //读取cookie
var mycookie = $.cookie('mycookie');
alert(mycookie);
</script>
</head>
<body>
<h1>测试页面</h1>
</body>
</html>
cookie简单使用示例
webstorage的使用示例-localStorage/sessionStorage
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript"> //localStorage.setItem("dat", "456"); //sessionStorage.setItem('dat1','789'); </script>
</head>
<body>
<h1>测试webstorage</h1>
</body>
</html>
webstorage的使用示例
cookie练习-只弹一次的弹框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script type="text/javascript">
$(function () {
var hasread = $.cookie('hasread');
//alert(hasread); // 判断是否存了cookie,没有就弹出弹框
if (hasread == undefined) {
$('.pop_con').show();
} //用户点击知道后,存cookie,把弹框关掉
$('#user_read').click(function () {
$.cookie('hasread', 'read', {expires: 7, path: '/'});
$('.pop_con').hide();
})
})
</script>
<script type="text/javascript"></script>
<style type="text/css"> .pop_con {
display: none;
} .pop {
position: fixed;
width: 500px;
height: 300px;
background-color: #fff;
border: 3px solid #000;
left: 50%;
top: 50%;
margin-left: -250px;
margin-top: -150px;
z-index: 9999;
} .mask {
position: fixed;
width: 100%;
height: 100%;
background-color: #000;
opacity: 0.3;
filter: alpha(opacity=30);
left: 0;
top: 0;
z-index: 9990; } .close {
float: right;
font-size: 30px;
}
</style>
</head>
<body> <div class="pop_con">
<div class="pop">
亲!本网站最近有优惠活动!请强力关注!
<a href="#" id="close" class="close">×</a> <a href="javascript:;" id="user_read">朕知道了!</a>
</div>
<div class="mask"></div>
</div> <h1>网站内容</h1>
</body>
</html>
cookie练习-只弹一次的弹框
jqueryUI
jQuery UI是以 jQuery 为基础的代码库。包含底层用户交互、动画、特效和可更换主题的可视控件。我们可以直接用它来构建具有很好交互性的web应用程序。
jqueryUI 网址
http://jqueryui.com/
常用jqueryUI插件:
Draggable
1、设置数值的滑动条
2、自定义滚动条
拖拽滑动条设置数值示例(类似于游戏中中设置灵敏度的设置条)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>drag</title>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function () {
$('.dragbar').draggable({
axis: 'x', containment: 'parent',
//containment:[0,0,600,0] //设置拖动时候的透明度
opacity: 0.6, drag: function (ev, ui) {
//console.log(ui.position.left); //获取拖动的距离
var nowleft = ui.position.left;
$('.progress').css({width: nowleft});
$('.slide_count').val(parseInt(nowleft * 100 / 570));
}
});
})
</script>
<style type="text/css">
.slidebar_con {
width: 650px;
height: 32px;
margin: 50px auto 0;
} .slidebar {
width: 600px;
height: 30px;
border: 1px solid #ccc;
float: left;
position: relative;
} .slidebar .dragbar {
width: 30px;
height: 30px;
background-color: gold;
cursor: pointer;
position: absolute;
left: 0;
top: 0;
} .slidebar .progress {
width: 0px;
height: 30px;
background-color: #f0f0f0;
position: absolute;
left: 0;
top: 0;
} .slide_count {
padding: 0;
float: right;
width: 40px;
height: 30px;
border: 1px solid #ccc;
text-align: center;
font-size: 16px;
} </style>
</head>
<body>
<div class="slidebar_con">
<div class="slidebar">
<div class="progress"></div>
<div class="dragbar"></div>
</div>
<input type="text" name="" value="0" class="slide_count">
</div>
</body>
</html>
拖拽滑动条示例
网页自定义页面滚动条示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义滚动条</title>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<script type="text/javascript">
$(function () {
var h = $('.paragraph').outerHeight(); //整体文本的高度减去外面容器的高度
var hide = h - 500; $('.scroll_bar').draggable({
axis: 'y',
containment: 'parent',
opacity: 0.6,
drag: function (ev, ui) {
var nowtop = ui.position.top;
var nowscroll = parseInt(nowtop / 290 * hide);
$('.paragraph').css({top: -nowscroll});
}
});
})
</script>
<style type="text/css">
.scroll_con {
width: 400px;
height: 500px;
border: 1px solid #ccc;
margin: 50px auto 0;
position: relative;
overflow: hidden;
} .paragraph {
width: 360px;
position: absolute;
left: 0;
top: 0;
padding: 10px 20px;
font-size: 14px;
font-family: 'Microsoft Yahei';
line-height: 32px;
text-indent: 2em;
} .scroll_bar_con {
width: 10px;
height: 490px;
position: absolute;
right: 5px;
top: 5px;
} .scroll_bar {
width: 10px;
height: 200px;
background-color: #ccc;
position: absolute;
left: 0;
top: 0;
cursor: pointer;
border-radius: 5px;
}
</style>
</head>
<body>
<div class="scroll_con">
<div class="paragraph">
2005年以后,互联网进入Web2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。以前会Photoshop和Dreamweaver就可以制作网页,现在只掌握这些已经远远不够了。无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好,这方面的专业人才近几年来备受青睐。Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。
掌握HTML是网页的核心,是一种制作万维网页面的标准语言,是万维网浏览器使用的一种语言,它消除了不同计算机之间信息交流的障碍。因此,它是目前网络上应用最为广泛的语言,也是构成网页文档的主要语言,学好HTML是成为Web开发人员的基本条件。
学好CSS是网页外观的重要一点,CSS可以帮助把网页外观做得更加美观。
学习JavaScript的基本语法,以及如何使用JavaScript编程将会提高开发人员的个人技能。
了解Unix和Linux的基本知识虽然这两点很基础,但是开发人员了解Unix和Linux的基本知识是有益无害的。
了解Web服务器当你对Apache的基本配置,htaccess配置技巧有一些掌握的话,将来必定受益,而且这方面的知识学起来也相对容易。
</div>
<div class="scroll_bar_con">
<div class="scroll_bar">
</div>
</div>
</div>
</body>
</html>
网页自定义页面滚动条示例
前端之本地存储和jqueryUI的更多相关文章
- web前端实现本地存储
当我们在提及web前端本地存储的时候,首先需要介绍一下本地化存储的概念和历史.本地化存储从来不是一个新奇的概念,因为web应用程序一直在追求的就是媲美甚至超越桌面应用程序.但是桌面应用程序一直优于we ...
- [web 前端] web本地存储(localStorage、sessionStorage)
cp from : https://blog.csdn.net/mjzhang1993/article/details/70820868 web 本地存储 (localStorage.sessionS ...
- 前端开发本地存储之localStorage和sessionStorage
1.localStorage 概念 HTML5 web 存储:HTML5 提供了两种在客户端存储数据的新方式:localStorage 和 sessionStorage ,两者都是仅在客户端(即浏览器 ...
- 前端开发本地存储之cookie
1.cookie cookie是纯文本,没有可执行代码,是指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端(浏览器)上的数据(通常经过加密).当用户访问了某个网站的时候,我们 ...
- 前端笔记之HTML5&CSS3(上)新特性&音频视频&本地存储&自定义属性
一.HTML5简介 HTML 5 的第一份正式草案已于2008年1月22日公布.HTML5 仍处于完善之中.然而,大部分现代浏览器已经具备了某些 HTML5 支持. 2014年10月29日,万维网联盟 ...
- HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术
最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...
- HTML5 学习总结(三)——本地存储
一.HTML4客户端存储 B/S架构的应用大量的信息存储在服务器端,客户端通过请求响应的方式从服务器获得数据,这样集中存储也会给服务器带来相应的压力,有些数据可以直接存储在客户端,传统的Web技术中会 ...
- Javascript本地存储小结
前言 总括:详细讲述Cookie,LocalStorge,SesstionStorge的区别和用法. 人生如画,岁月如歌. 原文博客地址:Javascript本地存储小结 知乎专栏&& ...
- (转)Javascript本地存储小结
转自:https://i.cnblogs.com/EditPosts.aspx?opt=1 以下是原文: 1. 各种存储方案的简单对比 Cookies:浏览器均支持,容量为4KB UserData:仅 ...
随机推荐
- Python 变量与运算符
变量 基本概念: 1. 变量,名字,数据的唯一标识2.变量命名: 字母.数字.下划线: 不能以数字开头: 区分大小写: 不能使用保留字和关键字: 命名要有意义:(多个单词时,推荐使用下划线连接) 3. ...
- 如何用css实现太极图
<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>太 ...
- 记一次Tomcat启动报错Failed to start component [StandardEngine[Catalina].Standard
今天启动项目的时候,发现tomcat一直报错,之前都一直没有问题的啊,提示 org.apache.catalina.LifecycleException: Failed to start ...
- Java描述设计模式(02):简单工厂模式
本文源码:GitHub·点这里 || GitEE·点这里 一.生活场景简介 1.引入场景 订餐流程简单描述 1).食品抽象类,规定食品的基础属性操作 2).鱼类,鸡肉类食品类扩展 3).订餐流程类,根 ...
- C++ 面向对象程序设计复习大纲
这是我在准备C++考试时整理的提纲,如果是通过搜索引擎搜索到这篇博客的师弟师妹,建议还是先参照PPT和课本,这个大纲也不是很准确,自己总结会更有收获,多去理解含义,不要死记硬背,否则遇到概念辨析题会 ...
- 使用 Docker 构建 Nebula Graph 源码
Nebula Graph 介绍 Nebula Graph 是开源的高性能分布式图数据库.项目使用 C++ 语言开发,cmake 工具构建.其中两个重要的依赖是 Facebook 的 Thrift RP ...
- JS 实现
JavaScript 使用 HTML 中的脚本必须位于<script> 与 </script>标签之间. 脚本可被放置在 HTML 页面的 <body>和 < ...
- R Data Frame
https://www.datamentor.io/r-programming/data-frame/ Check if a variable is a data frame or not We ca ...
- jmeter控制器(四)
交替控制器: 交替控制器主要是让控制器里面的请求顺序执行,如下图设置了审批管理循环3次,那么第一次运行就执行了请假模块,第二次运行执行了请假模块1,第二次执行了请加模块2,依顺序每一个请加模块只执行一 ...
- 读书笔记_python网络编程3(6)
6.TLS/SSL 6.0. 传输层安全协议(TLS, Transport Layer Security)是如今web上应用最广泛的加密方法了,1999年成为互联网标准.前身是安全套接层(SSL, S ...