工具库用久了,你还会原生操作cookie吗?

编程三昧      2022-02-16     198

关键词:

前言

前端技术的飞速发展,给从业人员不可避免地带来了“疲劳”感,我们常常会感叹学不动了。于是,为了给我们“减压”,各种工具库和框架们诞生了。

对公司来说,通过工具库和框架的引入,一方面是约束了代码风格,提高了可维护性,最重要的是可以缩短开发周期,早日出成品。

对个人来说,各种工具库和框架用起来简直不要太爽,再也不用哼哧哼哧地啃那些原生的操作方法了,既解放了脑力,又多出了摸鱼的时间,还不用考虑方法的准确性……一箭多雕的买卖简直是太划算了!

公司是追求效益的,主张引入工具库和框架无可厚非,可如果我们个人也沉迷于此,那就真的有问题了。

固然,我们不能否认工具库和框架的优势,但能作为我们前进基石的永远不可能是工具库和框架。

用得好了,工具库和框架确实是一大助力,但就怕我们会因此习惯了走捷径,而忘了自己的根本依靠是什么。

感慨有点多,但确实是有感而发。今天有测试组的同事找我给他们写一个记住密码的脚本,因为考虑到功能简单,没必要引入工具库,就使用原生操作来实现,结果,我竟然写地磕磕绊绊,中途还不得不上网查资料。就这么一个简单的实现,何至于此啊!?

饭来张口的日子过多了,就忘了怎么做饭了!我真想知道,如果当某一天没了“饭源”时,我们会有多少人被“饿死”?

Cookie 的操作

关于 Cookie 的相关概念,若有需要,可查看 这里这里

设置 Cookie

Cookie 的设置需要包含以下属性:

  • key String 类型
  • value String 类型
  • expires 可选,符合 HTTP-date 规范的时间戳,也可设置 max-age(数字,单位为秒)。设置则为持久性 Cookie,缺省则为会话期 Cookie
  • path 可选,String 类型
  • domain 可选,String 类型
  • secure 可选,String 类型

一个简单的设置 Cookie 的方法:

function setCookieItem(sKey, sValue, vEnd, sPath, sDomain, bSecure) {
    if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) {
        return false;
    }
    var sExpires = "";
    if (vEnd) {
        switch (vEnd.constructor) {
            case Number:
                sExpires = vEnd === Infinity 
                    ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" 
                    : "; max-age=" + vEnd;
                break;
            case String:
                sExpires = "; expires=" + vEnd;
                break;
            case Date:
                sExpires = "; expires=" + vEnd.toUTCString();
                break;
        }
    }
    document.cookie = encodeURIComponent(sKey) 
        + "=" + encodeURIComponent(sValue) 
        + sExpires 
        + (sDomain ? "; domain=" + sDomain : "") 
        + (sPath ? "; path=" + sPath : "") 
        + (bSecure ? "; secure" : "");
    return true;
}

是否存在 Cookie

function isCookieItemExisted(sKey) {
    return new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[-.+*]/g, "\\$&") + "\\s*\\=").test(document.cookie);
}

删除 Cookie

删除 Cookie 只需要将其过期时间expires 设为过去的时间即可,也可以通过设置 max-age 为 0 或 -1 来删除 Cookie:

function removeCookieItem(sKey, sPath, sDomain) {
    if (!sKey || !isCookieItemExisted(sKey)) {
        return false;
    }
    document.cookie = encodeURIComponent(sKey) 
        + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" 
        + (sDomain ? "; domain=" + sDomain : "") 
        + (sPath ? "; path=" + sPath : "");
    return true;
}

查找 Cookie

function getCookieByKey(sKey) {
    return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[-.+*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null;
  },

总结

别人造的轮子或许好用,但为了提升自己,我们最好也应该试着自己造造轮子,即使粗糙,但那也是自己的。

~

~本文完,感谢阅读!

~

电脑用久了,学会这几招增加十年寿命,清除电脑里的垃圾方法与流氓软件工具(代码片段)

介绍清理电脑垃圾的方法与清除流氓软件的工具,在增加内存的前提下使你的电脑也能干净清洁,增加电脑寿命。目录1.系统自带1.1存储感知1.2优化驱动器2.更改文件存储位置2.1微信2.2OneDrive3.360安全卫士4.火绒安全1.系统... 查看详情

cpu用久了,性能不会下降吗?

会下降。cpu又名中央处理器,是电子设备中最重要的硬件之一。他类似与人体里的大脑,掌握很多功能,并且集中处理其他硬件运行。所以在长时间的使用下,cpu也会跟人脑一样出现衰老,从而使性能下降。但是真正让cpu性能下... 查看详情

如果你使用 React.js,你还会写 HTML/CSS 文件吗?

】如果你使用React.js,你还会写HTML/CSS文件吗?【英文标题】:DoyoustillwriteHTML/CSSfilesifyou\'reusingReact.js?【发布时间】:2017-09-1921:42:42【问题描述】:我似乎无法理解react.js的工作流程。您还需要直接编写HTML和CSS吗?【问题讨论】... 查看详情

对比百度必应谷歌搜索结果,你还会用百度吗?

对比百度、必应、谷歌搜索结果,你会发现百度把你耽搁了(点击链接阅读原文) 查看详情

如果没有财务压力,你还会努力吗?

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选... 查看详情

如果没有财务压力,你还会努力吗?

新尝试,视频号聊技术,欢迎双击爱心新尝试,60s分享一个正能量。“架构师之路”视频号,学技术,学管理,闯职场如果大家喜欢,我尽量坚持下去。推荐阅读:《架构师之路,21年干货精选... 查看详情

电脑用久了越来越卡怎么办?

...装系统。win10重装教程如下:1、下载并打开小白三步装机工具,默认会推荐我们安装Windows10,点击立即重装。提醒,重装建议退出安全软件。2、接下来软件直接就下载系统,下载完成后会自动帮助我们部署当前下载的系统。3、... 查看详情

上手体验vue3vite的魅力(“快”的艺术),有了它,你还会用webpack吗?(代码片段)

...语单词,“快”的意思)是一种新型的前端构建工具,最初是配合Vue3.0一起使用的,后来适配了各种前端项目,目前提供了Vue、React、Preact框架模板。目前来说,Vue使用的是vue-cli脚手架,React一般使用cr... 查看详情

看完这篇文章,你还会问陈景润证明“1+2”有什么意义吗?

 http://www.sohu.com/a/108570901_372416哥德巴赫猜想,这个话题其实在网上可以找到很多资料,我就加一些我自己的话吧.这的确是好话题.为什么这么说呢,因为哥德巴赫猜想(简称"1+1")可以说是在中国知名度最高的数学难题.如果有人上大... 查看详情

如果再来一次,你还会选择互联网么?

...;身边悲观的声音越来越多了。如果再给你一次机会,你还会选择互联网吗?回答这个问题之前,我想跟大家聊聊一个我朋友的故事。他从学渣到大厂程序员,百万粉丝博主,到换行换岗,职场受挫,又... 查看详情

如果再来一次,你还会选择互联网么?

...;身边悲观的声音越来越多了。如果再给你一次机会,你还会选择互联网吗?回答这个问题之前,我想跟大家聊聊一个我朋友的故事。他从学渣到大厂程序员,百万粉丝博主,到换行换岗,职场受挫,又... 查看详情

javascript操作cookies详解

javascript操作cookies详解这段操作cookies的方法我使用很久了,但是一直一来没遇到什么问题,今天在做一个在第一个页面保存了cookies,第二个页面获取或者第三个页面获取的功能中,发现了方法的局限性,比如,第一个页面路径... 查看详情

面对新/热门基金,你还会买吗?

最近睿远均衡价值三年持有混合基金即将发售,一天据说吸引1200亿元,那么为什么不建议买吗,以下就是不买此类基金的原因了。 查看详情

jquery操作元素属性操作样式操作样式类操作html代码以及其他操作[学完你还不会吗](代码片段)

目录操作元素属性操作样式操作样式类练习:判断用户名是否可用操作HTML代码其他操作操作文本获取或设置元素的高度和宽度操作值操作元素的固有属性查找和筛选元素操作元素属性操作元素的属性即操作元素的自定义属性和固... 查看详情

vue中直接操作cookie及如何使用工具js-cookie

vue中直接操作cookie以下3种操作方式set:function(name,value,days){vard=newDate;d.setTime(d.getTime()+24*60*60*1000*days);window.document.cookie=name+"="+value+";path=/;expires="+d.toGMTString();},get:function(name) 查看详情

loser,除了努力你还会什么?

Loser,除了努力你还会什么?盲目崇拜力量和金钱,是老百姓的癌症。盲目崇拜道德和努力,是傻白甜的癔症。前阵子流行的一句话——大多数人努力的程度之低,还没有轮到拼天赋的时候。这句话一下子刺中... 查看详情

windows7磁盘清理中的设置日志文件能清理吗?

...中包括日志文件)→确定②碎片整理:右键C盘→属性→工具→碎片整理→立即进行碎片整理→点选C盘→分析磁盘→超过30%→清理磁盘③磁盘自检:用于修复磁盘错误、坏道等故障。右键C盘→属性→工具→差错→开始检查→对磁... 查看详情

自定义的操作cookie的工具类(代码片段)

可以在SpringMVC等环境中使用的操作Cookie的工具类packageutils;importjava.io.UnsupportedEncodingException;importjava.net.URLDecoder;importjava.net.URLEncoder;importjavax.servlet.http.Cookie;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/****Coo... 查看详情