`
kinglong
  • 浏览: 32747 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Cookie类第三版

阅读更多
针对原来Cookie类使用起来不太方便,去掉用不上的冗余方法,并参考了js里的Cookie对象,出了第三版Cookie类
package com.klstudio{
	import flash.net.SharedObject;

	/**
	 * Cookie Cookie类
	 * @author kinglong
	 * @since 2012-1-9
	 */
	public class Cookie {
		private var _expires : uint;
		private var _name : String;
		private var _so : SharedObject;

		/**
		 * 构造
		 * @param name Cookie名称
		 * @param expires 过期值(单位小时)
		 */
		public function Cookie(name : String, expires : uint = 24) {
			_name = name;
			_expires = Math.max(expires, 1);
			_so = SharedObject.getLocal(name, "/");
			
			//clearAllExpires
			for (var key : String in _so.data) {
				if (_so.data[key] is Object) {
					var data : Object = _so.data[key];
					if (data.hasOwnProperty("expires") && data.hasOwnProperty("value")) {
						var nowTime : Number = new Date().getTime();
						if (Number(data["expires"]) > nowTime) {
							continue;
						}
					}
				}
				delete _so.data[key];
			}
		}

		/**
		 * Cookie名称
		 */
		public function get name() : String {
			return _name;
		}

		/**
		 * Cookie过期值(单位小时)
		 */
		public function get expires() : uint {
			return _expires;
		}

		/**
		 * 清除所有
		 */
		public function removeAll() : void {
			_so.clear();
		}

		/**
		 * 清除指定属性
		 * @param key Cookie属性
		 */
		public function remove(key : String) : * {
			var result : * = get(key);
			if (result != null) {
				delete _so.data[key];
				_so.flush();
			}
			return result;
		}

		/**
		 * 获取Cookie属性值
		 * @param key Cookie属性
		 * @return Cookie属性值
		 */
		public function get(key : String) : * {
			return contains(key) ? _so.data[key]["value"] : null;
		}

		/**
		 * 添加Cookie属性
		 * @param key Cookie属性
		 * @param value Cookie属性值
		 * @return 旧的Cookie属性值
		 */
		public function put(key : String, value : *) : * {
			var day : Date = new Date();
			var result : * = get(key);
			_so.data[key] = {expires:day.getTime() + expires * 1000 * 60 * 60, value:value};
			return result;
		}

		/**
		 * Cookie属性是否存在
		 * @param key Cookie属性
		 */
		public function contains(key : String) : Boolean {
			if (_so.data.hasOwnProperty(key)) {
				if (_so.data[key] is Object) {
					var data : Object = _so.data[key];
					if (data.hasOwnProperty("expires") && data.hasOwnProperty("value")) {
						var nowTime : Number = new Date().getTime();
						if (Number(data["expires"]) > nowTime) {
							return true;
						}
					}
				}
				delete _so.data[key];
				_so.flush();
			}
			return false;
		}
	}
}

分享到:
评论

相关推荐

    C#cookie实现历史记录

    - **SameSite属性**:为防止跨站请求伪造(CSRF)攻击,C# 4.5及以上版本支持设置Cookie的`SameSite`属性,限制第三方网站使用该Cookie。 - **大小限制**:单个Cookie的大小不应超过4KB,否则可能无法正确发送。...

    原生登录cookie保持提供webview使用

    首先,你需要初始化`CookieManager`,启用第三方cookie支持,并清空旧的cookie存储。 ```java CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptThirdPartyCookies(webView, ...

    Jquery.cookie

    `$.cookie()` 方法接受一个可选的配置对象作为第三个参数,用于自定义Cookie的行为。以下是一些常见的选项: - **expires**: 一个日期对象或数字,表示Cookie的过期时间。日期对象会精确到天,数字会被转换为天数。...

    cookie高级操作技巧

    在打开的Internet 选项设置窗口里,顶上有一条标签栏,点击第三个"隐私"(Privacy) 在"隐私"的设置里,中间偏下有四个按钮,点击第四个按钮"默认"(Default) 点击按钮"确定"(OK),关闭cookie设置窗口 点击按钮"确定"...

    PHP和MySQLWeb开发第三版(光盘源码)

    《PHP和MySQL Web开发第三版》是一本深入探讨如何使用PHP与MySQL进行高效Web开发的专业书籍。这本书的光盘源码包含了大量的实例代码,旨在帮助读者更好地理解和实践书中的理论知识。通过研究这些源码,我们可以了解...

    重新设置IE浏览器开启COOKIE功能

    第一方Cookie是由你访问的网站设置的,而第三方Cookie则是由该网站包含的其他域(如广告网络)设置的。会话Cookie仅在浏览器会话期间存在,关闭浏览器后即消失,而永久Cookie则在指定过期日期前一直保留。 正确配置...

    程序化广告 关键点 什么是CookieMapping.docx

    1. **第一方Cookie与第三方Cookie**:当用户访问一个网站时,该网站设置的Cookie被称为第一方Cookie。而当网站中包含了来自其他域的内容(如广告、图片等),这些其他域设置的Cookie则被称为第三方Cookie。 2. **...

    PHP和MySQL从入门到精通 - 第三版

    《PHP和MySQL从入门到精通 - 第三版》是一本专为初学者和进阶者设计的编程指南,旨在帮助读者全面掌握PHP和MySQL这两种在Web开发领域中至关重要的技术。这本书采用RAR格式压缩,解压后得到的是PDF文档,全书为英文版...

    JSP应用开发详解第三版 源代码 ch7

    《JSP应用开发详解第三版》是一本深入探讨JavaServer Pages (JSP)技术的专业书籍,其中的"源代码 ch7"部分包含了第七章的全部示例代码。JSP是Java平台上的动态网页开发技术,它允许开发者在HTML或者XML文档中嵌入...

    cookie编辑器

    2. **隐私风险**:虽然编辑Cookie可以帮助保护隐私,但过度依赖或滥用也可能暴露个人偏好,甚至让恶意第三方有机会利用。 3. **版本兼容**:不同的浏览器和系统可能需要特定版本的Cookie编辑器,使用前要确保编辑器...

    PHP从入门到精通第三版源代码

    《PHP从入门到精通第三版》是一本深受程序员喜爱的PHP学习教材,它全面而深入地介绍了PHP编程的基础知识和高级技巧。这本书的源代码包含了书中所有实例的完整实现,对于初学者和进阶者来说,是绝佳的实践资源。光盘...

    前端项目-cookie-banner.zip

    此外,可以集成第三方分析工具,收集关于用户对Cookie Banner交互的数据。 总的来说,"前端项目-cookie-banner.zip"提供了一个基础的Cookie Banner实现,开发者可以根据自己的需求进行定制和扩展,确保网站在提供...

    asp.net程序开发范例宝典(第三版)(16-20)

    《ASP.NET程序开发范例宝典(第三版)》是一本深入浅出的教程,旨在帮助读者掌握ASP.NET编程技术并提升网页开发能力。书中的400多个实例覆盖了ASP.NET开发的各个方面,旨在通过实践操作的方式,让开发者更好地理解和...

    Java网络编程(第三版)中文版.part11.rar

    Java网络编程(第三版)中文版(不看后悔) JAVA Network Programming,Third Edition 原出版社: O'Reilly 作者: (美)Elliotte Rusty Harold [作译者介绍] 译者: 朱涛江[同译者作品] 林剑 丛书名: O'...

    Java网络编程(第三版)中文版.part06.rar

    Java网络编程(第三版)中文版(不看后悔) JAVA Network Programming,Third Edition 原出版社: O'Reilly 作者: (美)Elliotte Rusty Harold [作译者介绍] 译者: 朱涛江[同译者作品] 林剑 丛书名: O'...

    轻量级Java EE企业应用实战第三版第三章源码第一部分

    在《轻量级Java EE企业应用实战第三版》中,第三章主要探讨了如何构建高效且灵活的企业级应用。源码第一部分涵盖了章节3.2至3.7的部分内容,这些章节深入讲解了Java EE(Java Platform, Enterprise Edition)的核心...

    Java网络编程(第三版)中文版.part07.rar

    Java网络编程(第三版)中文版(不看后悔) JAVA Network Programming,Third Edition 原出版社: O'Reilly 作者: (美)Elliotte Rusty Harold [作译者介绍] 译者: 朱涛江[同译者作品] 林剑 丛书名: O'...

    Java网络编程(第三版)中文版.part09.rar

    Java网络编程(第三版)中文版(不看后悔) JAVA Network Programming,Third Edition 原出版社: O'Reilly 作者: (美)Elliotte Rusty Harold [作译者介绍] 译者: 朱涛江[同译者作品] 林剑 丛书名: O'...

    C# cefsharp 多账号同时登陆,设置cookie隔离,修改部分浏览器指纹

    CEFSharp虽然没有直接提供修改指纹的API,但可以通过JavaScript注入或者使用第三方库来实现,比如FingerprintJS。 1. JavaScript注入:在加载页面之前,向页面注入JavaScript代码,改变UserAgent、Accept-Language...

Global site tag (gtag.js) - Google Analytics