初探ES7 Decorator

装饰器装饰器是 ES7 新有的特性,它允许我们使用简洁的方式,为已有的类、类的方法、类的属性 添加有趣的修饰。     阅读全文
carvenzhang's avatar
carvenzhang 2月 01, 2018

T460黑苹果安装

之前对黑苹果并没有认识,认为黑苹果的安装要求很苛刻。当然,现在对黑苹果的认识也很肤浅,黑苹果对硬件也确实是有要求的,但是也远远没有我之前想的那么难。最近手头多了一台联想ThinkPad系列的T460:2.4 GHz Intel Core i5-6200U、8 GB 1600 MHz DDR3、NVIDIA GeForce 940MX、256G 固态硬盘。其他具体参数可以看网上哦。 认识黑苹果首先因为mac系统只有苹果公司的mac系列电脑才用到,硬件有限,所以对应硬件的驱动也有限,所以黑苹果的安装才那么困难,因为你电脑上的硬件不一定有合适的驱动,为此,需要通过一定的手段去伪装,才导致了安装的困难性。 只要手段得当,现在的很多一部分笔记本都可以跑起黑苹果。好吧其实我就知道那么多。     阅读全文
carvenzhang's avatar
carvenzhang 5月 06, 2017

xss总结记录

认识XSS最近工作小组上,集中精力提高安全意识。而XSS作为全端安全中最常见的问题之一,我们也做了着重的学习。XSS全称跨站脚本(Cross Site Scripting)攻击,看起来缩写应该是CSS,但是CSS已经普遍指层叠样式表(Cascading Style Sheets),所以呼作XSS。     阅读全文
carvenzhang's avatar
carvenzhang 2月 17, 2017

yarn -- 新型包管理器

node 包管理器随着nodejs的出现,另外两个东西也进入了前端大众的视野–CommonJS规范、node 包管理器。 说到node 包管理器,就不得不提npm,毕竟是官方标配,安装了node就自带了npm。npm + nodejs,构成了一个宏伟了前端世界。当然,出于各种原因,市面上还存在着各种包管理器,比较著名的端资源包管理器 – ‘bower’;镜像为主的cnpm、tnpm;工具提供的rnpm、spm;还有很多其他的(我也没用过):jamjs、component。 今天,想向大家介绍的是yarn– 2016.10.11 Facebook 正式发布的 javascript 包管理器, 用来替代npm。我在一次偶然的升级react native的时候,接触了yarn(react native已经将自家的yarn融入安装环境中)。一遍文章《Yarn: A new package manager for JavaScript》讲述了yarn的诞生历程。     阅读全文
carvenzhang's avatar
carvenzhang 11月 21, 2016

cors跨域探讨

前端跨域前端跨域方案很多,jsonp、iframe等等,但是个人觉得,最正宗,最无损的跨域方式还是CORS。CORS(Cross-origin resource sharing)是一个W3C标准,翻译过来是跨域资源共享。它允许浏览器向跨域(协议、域名、端口任一不相同)服务器发送XMLHttpRequest请求。目前支持所有现代浏览器(>IE10)借阅了阮一峰大神的《跨域资源共享 CORS 详解》,结合自己的理解,说一说自己的CORS的领会。 简介CORS协议本身,可以说,完全是由浏览器执行的。对前端开发者而言,CORS是在浏览器检查到跨域请求的时候,自动发起的。对后台开发者而言,只要在headers中返回特定的信息(相当于白名单)–具体的CORS步骤,浏览器会根据headers中返回的信息做出具体的行为。 请求浏览器会自动将请求分为两类:简单请求、非简单请求。只要同时满足以下条件,就属于简单请求。 (1) 请求方法是以下三种方法之一:· HEAD· GET· POST(2)HTTP的头信息不超出以下几种字段:· Accept· Accept-Language· Content-Language· Last-Event-ID· Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain凡是不同时满足上面两个条件,就属于非简单请求。浏览器对这两种请求的处理,是不一样的。     阅读全文
carvenzhang's avatar
carvenzhang 11月 08, 2016

koa+socket.io尝试简单的web动作同步

动作同步尝试用过browser-sync辅助开发的前端同学,大概都会感到神奇:在多个端打开网页,网页的动作却是完全同步的。当然我还没有看过源码,大概也知道是通过’websocket’实现信息同步。今天在看书籍《跨终端Web》–徐凯 的时候,里面有一部分 web动作同步的代码演示。于是做了demo做练习。 准备工具 koa : @1.1.2socket.io : @1.5.0 其中koa并没有什么特别意思,只是作为一个服务器存在,用express或者其他什么都可以。socket.io是我们需要的通讯库 原理1、 前端捕获正在发生的动作action,和触发动作的元素target,通过客户端socket传输到服务器socket;2、 服务器socket接收到信息,再将信息广播到其他所有客户端socket;3、 其他客户端socket接收到广播信息,使特定的元素target触发特定的动作action     阅读全文
carvenzhang's avatar
carvenzhang 10月 10, 2016

好用的分屏tab react-native-scrollable-tab-view

我们需要导航栏如果一个人每天都有惊喜的话,我今天的最大惊喜就是找到了一个react-native-scrollable-tab-view。我们在写一个应用的时候,总是会有需要,将多个页面放在一屏,通过导航栏切换,如微信、淘宝这时候我们需要一个组件来帮我们快速实现这个功能。     阅读全文
carvenzhang's avatar
carvenzhang 9月 02, 2016

体验koa

体验koa之前使用nodejs开发后台服务,使用的一直是express。后来了解到express开发团队重新开发了一个框架koa。 先不说优点有什么,秉着探索的精神,先体验一下 koa 不同之处koa 中文文档 koa 给人感觉最大的不同就是,在处理流程上使用的是ES6 的 generator generator通过yield和next的方法,使得流程清晰易见。     阅读全文
carvenzhang's avatar
carvenzhang 9月 01, 2016

html邮件模板编写实践

编写邮件模板最近在写业务开发的时候,需要去写邮件通知的模板。积累了一些邮箱编写经验呀呀。 邮件html编写要求邮件编写参照的是 阮一峰大神的HTML Email 编写指南 里面大致提了 使用table 布局外链除了图片全部失效css使用行内样式为佳 各邮件对css的支持     阅读全文
carvenzhang's avatar
carvenzhang 9月 01, 2016

gulp流程控制

烂笔头 很久没有写博客了。 记得最近的实习生活都颇有收获,一直想着记下什么,当真正想写的时候,才发现什么都不记得了。 所有,上周刚刚有了一点小收获,赶紧得记下来。 情况 周一在打包一个文件的时候,打包引入后,发现文件报错了。 大致是因为我打算将关于webpack的部分整合到gulp里面的(用的是webpack-stream,我也是最近才知道,webpack-stream是gulp-webpack的进阶版),整合完成后,进行打包。 原来的打包文件是这样写的: gulp.task('dev',function(){ //希望'webpack_test','devconcatcss','devsass'顺序执行 gulp.run('webpack_test','devconcatcss','devsass'/*,...*/); }); 我是将webpack打包放在打包列表的首位的,结果看cmd里面的打包流程序列,webpack任务最先开始,然后其他任务很快跟上(毫秒级),所有任务都完成后, webpack打包结果才出来,我意识到是控制流程有问题。而且系统提示gulp.run过旧了。于是打算修改控制流程。     阅读全文
carvenzhang's avatar
carvenzhang 8月 29, 2016