这是我的个人网站,用来记录个人生活 😊
前端存储方案
cookie/session cookie cookie是一种客户端会话跟踪技术,用于将网页的数据存储到浏览器中。当关闭浏览器或到过期时间时,cookie将失效。 cookie存在大小限制,一般个数限制为20~50,大小限制在4KB左右。 cookie在每次请求时将携带在HTTP头中,如果cookie保存过多数据可能存在性能问题。 Caution: 浏览器可能禁用cookie 不要利用cookie保存隐私数据 设置HttpOnly属性可避免XSS攻击 session session为会话数据,保存在Web服务器上,主要负责访问者与网站之间的交互。 HTML5新增存储方案 HTML5中新增存储方案,包括sessionStorage、localStorage、WebSQL、IndexedDB。下列所有存储方案均遵循同源策略限制。 localStorage localStorage生命周期是永久,可实现数据持久化存储。除非用户手动清除,否则localStorage存储的数据一直保存在浏览器中。 localStorage的大小一般为5MB,不参与与服务端的通信。 Caution: localStorage在浏览器隐私模式下不可读取;存储内容多会消耗内存空间,导致页面卡顿。 sessionStorage sessionStorage仅在当前会话下有效,关闭页面或者浏览器后被清理并失效。 sessionStorage的大小一般为5MB。 Caution: sessionStorage无法跨Tab共享: 打开新页面时,将导致session失效;通过Duplicate 复制Tab时,sessionStorage失效。故在持久化存储时,优先考虑localStorage。 WebSQL WebSQL数据库API不是HTML5规范的一部分,但它是一个独立的规范,引入一组使用SQL操作客户端数据库的API。 WebSQL与关系数据库的概念相似,支持openDatabase/transaction/executeSQL 等操作,在Chrome浏览器中支持,一般情况下较少使用,作为临时存储或缓存使用。 Caution: 仅Chrome、Safari、Opera支持,IE、Firefox等浏览器不支持。 IndexedDB IndexedDB是浏览器提供的本地数据库存储,允许存储大容量数据,提供查找接口、建立索引等功能;但IndexedDB不支持SQL,接近NoSQL数据库。 IndexedDB具有键值存储、异步、支持事务、同源限制(不支持跨域访问)、大容量(>=250MB)、支持二进制等特性。 前端框架存储方案介绍 React Redux-persist Redux-persist 通过将redux存储的数据缓存到localStorage中实现数据持久化存储。 react-redux React-redux将数据存储在内存中,当页面刷新时,存储的数据将被重置。 其它存储方案 Cache Storage Cache Storage存储Response对象,即存储HTTP响应。Cache Storage是多个Cache的集合,每个Cache可以存储多个Response对象。 Cache Storage在浏览器上的引用名是caches而不是驼峰写法的cacheStorage ,它定义在ServiceWorker规范中。 Application Cache HTML5引入了应用程序缓存技术,意味着web应用可以进行缓存。在没有网络的情况下,通过创建cache manifest文件,可以轻松创建离线应用。目前主流浏览器均支持Application cache。 Application cache有三个优势:离线浏览、提升页面的载入速度、降低服务器压力。 Application cache主要存储静态资源。使用时服务端需要维护一个manifest清单,浏览器需要进行简单设置。 应用场景分析 存储用户登陆状态 在大多数Web应用中,当用户登陆后,后端生成无意义的字符串token ,同时将token返回给前端。前端在后续所有请求中,将token附加到Header中传输到后端,后端进行token校验。前端在存储Token时,主流的如下几种方案: sessionStorage: 会话期间内存储,但无法跨浏览器Tab共享数据。 localStrogage: 永久存储。当token过期时,需要重新设置,涉及同步处理;当网站被XSS注入攻击后,对方可能截取localStorage中的数据;localStorage是同步操作,频繁读取可能存在性能问题。 cookie: 使用cookie存储用户登陆状态是目前Web开发主流中的主流。
读书笔记 - [季羡林]读书与做人
《读书与做人》简介 一代学术宗师季羡林先生,道德高尚,学问渊深,文章亦足以动人。 季老谈读书,深入浅出,举重若轻,以大学者而写作小文章,从中可见出一代学问家对学术的真诚与崇敬,读者亦可从中体悟到文史学科的一般入门途径。 季老论人生,信笔拈来,娓娓道出,以近于期颐之历练与心态,平和面对人世间的种种苦难,深于情,而不矫揉造作;明于理,而以平实朴素笔调发之,可给人以启迪与心灵的抚慰。 读书笔记 上个月初购买kindle之后,一段时间内致力于kindle电子书的收集,《读书与做人》是第一本找到的令人满意的电子书。在新阅读设备及新书的双重愉悦下,利用一个星期的业余时间阅读完该书,颇有收获,闲暇时记录下来以备将来复习。 从书名来看,包括读书与做人两部分,但从内容角度,可以分为自传、序集、做人三部分。 第一部分自传,从出生、小学、中学、大学、德国留学、归国后北大任教、翻译及文学推广,简短的文字描述了季老平淡、充实、传奇的一生。通过作者的自述,发现大部份熟知的成功人士所具备的经历在季老身上都完美呈现。在小时候不仅有极高的语言天赋,还博学多识,有读无类,不管英语或国学,都为接下来的发展打下坚实的基础。人并非生而知之,一个人的成功,离不开外缘与内因,在清华读书期间,跟随陈寅恪、朱光潜两位国学大师学习,潜移默化中影响深远,终身在这条道路上奋斗,是为外缘;德国哥廷根留学期间,潜心研学佛教史及梵文、巴利文、俄文、火星罗文等多门语言,正所谓十年寒窗无人知,一朝成名天下知,十年闭关研学是为内因,积淀与升华,成为一代国学大师与学界泰斗。这让我想到了另一位国学大师南怀谨,也有类似的经历,早年游学,涉猎多方,峨眉山三年关闭,为后续人生道路奠下基础。 第二部分序集,是季老为其它出版作品写书的序言集合。生平很少写序言,写必有因,写必无假话,其书都可以作为我们的补充阅读。 第三部分做人,流露出对青年一代做事做人的殷切关怀,以小见大,讨论人与自然、人与自身、人与社会的相处之道,也是对其自身的总结与自述。 经过这本书,认识到季老是如此一个可爱的人,有风趣、有风骨、有脾气,恰是一个身边人,恰是我们的一个外缘。
个人常用工具集
开发必备工具 VSCode Website: https://code.visualstudio.com/ 简介:This is the only editor which I used for my develop career since vscode released. Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages and runtimes (such as C++, C#, Java, Python, PHP, Go, .NET). ...