geqianqian-shihan / learning Goto Github PK
View Code? Open in Web Editor NEW每天努力进步一点点!
每天努力进步一点点!
HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:布局、盒子模型、选择器优先级及使用、HTML5、CSS3、移动端适应。
JavaScript: 数据类型、面向对象、继承、闭包、插件、作用域、跨域、原型链、模块化、自定义事件、内存泄漏、事件机制、异步装载回调、模板引擎、Nodejs、JSON、ajax等。
其他: HTTP、安全、正则、优化、重构、响应式、移动端、团队协作、可维护、SEO、UED、架构、职业生涯
1.IE6或更低版本最多20个cookie
2.IE7和之后的版本最后可以有50个cookie。
3.Firefox最多50个cookie
4.chrome和Safari没有做硬性限制
Opera 会清理近期最少使用的Firefox会随机清理 4096字节,为了兼容性,一般不能超过 IE 提供了一种存储可以持久化用户数据,叫做IE5.0就开始支持。每个数据最多128K,每个域名下最多1M。这个持久化数据放在缓存中,如果缓存没有清理,那么会一直存在。
优点:极高的扩展性和可用性
1.通过良好的编程,控制保存在cookie中的session对象的大小。
2.通过加密和安全传输技术(SSL),减少cookie被破解的可能性。
3.只在cookie中存放不敏感数据,即使被盗也不会有重大损失。
4.控制cookie的生命期,使之不会永远有效。偷盗者很可能拿到一个过期的cookie。
缺点:
1.Cookie
数量和长度的限制。每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。
2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。
3.有些状态不可能保存在客户端。例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。如果我们把这个计数器保存在客户端,那么它起不到任何作用。
CookieUtil={
addCookie:function(key,value,options){
var str=key+"="+escape(value);
if(options.expires){
var curr=new Date(); //options.expires的单位是小时
curr.setTime(curr.getTime()+options.expires*3600*1000);
options.expires=curr.toGMTString();
}
for(var k in options){ //有可能指定了cookie的path,cookie的domain
str+=";"+k+"="+options[k];
}
document.cookie=str;
},
queryCookie:function(key){
var cookies=document.cookie;
//获得浏览器端存储的cookie,格式是key=value;key=value;key=value
cookies+=";";
var start=cookies.indexOf(key);
if(start<=-1){ return null; } //说明不存在该cookie
var end=cookies.indexOf(";",start);
var value=cookies.slice(start+key.length+1,end);
return unescape(value);
},
deleteCookie:function(key){
var value=CookieUtil.queryCookie(key);
if(value===null){return false;}
CookieUtil.addCookie(key,value,{expires:0});//把过期时间设置为0,浏览器会马上自动帮我们删除cookie
}
}
/**
*
* 设置 单选tab 选项卡
* @param {Object} obj 参数对象
* @param {string} obj.href 参数对象
* @param {string} obj.tabId 参数对象
* @param {Object} obj.tabJson 参数对象
* @param {Object} obj.tabJson[key] tab 选项卡 data-type 属性
* @param {Object} obj.tabJson[key] tab 选项卡 点击调用的函数
* @param {function} obj.defaultFun 参数对象
* @param {function} obj.cb 参数对象
*
*/
self.setCurrentTab = function(href, tabId, tabJson, defaultFun, cb){
// href, tabId, tabJson, defaultFun, cb
(function(){
var hrTabNameJson = JSON.parse(self.getCookieJson('HRtabName')) || {},
tabType = hrTabNameJson.hasOwnProperty(href) ? hrTabNameJson[href] : Object.keys(tabJson)[0],
tabFun = !!tabType ? tabJson[tabType] : false;
!!defaultFun && defaultFun(tabFun);
// 设置当前选项卡 高亮
$('li[data-type=' + tabType + ']').click();
// 点击 tab 加载相应数据
element.on('tab(' + tabId + ')', function(data){
var data_type = $(this).data('type');
cb && cb(tabJson[data_type]);
hrTabNameJson[href] = data_type;
self.setCookieJson('HRtabName', JSON.stringify(hrTabNameJson), new Date().getTime() + 1 * 24 * 60 * 60 * 1000)
});
})();
};
###基础知识
前端必备资源大整理
ES6 全套教程 ECMAScript6 (原著:阮一峰)
Canvas教程
SEO
WebGL
###持续更新中
张鑫旭大神
大漠-Airen的博客
Alloy周刊
webpack多页应用架构系列
阿里云前端周刊
技匠(简书签约作者)
###优秀文章
听说你没来 JSConf 2017
19+ 个 JavaScript 快速编程技巧 — SitePoint
腾讯前端求职直播课——笔试篇
如何高效利用 GitHub 提升自己
2017前端现状--答题救不了前端新人
手把手教你用Vue2+webpack+node开发一个H5 app
ES6中的变量和作用域
ES6学习笔记:块级作用域绑定
Android:你要的WebView与 JS 交互方式 都在这里了
Github Page---- 搭建个人博客网站
10个JavaScript难点
前端算法实践
console使用
css命名规范
2017精华文章
12个非常实用的JavaScript小技巧
编写自己的代码库(javascript常用实例的实现与封装)
编写自己的代码库(javascript常用实例的实现与封装--续)
JS 的平凡之路--学习人气眼中的效果(中)
【第1104期】14 个你可能不知道的 JavaScript 调试技巧
移动web资源整理-白树
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.