JavaScript

js同源策略之共享cookie

什么是同源同domain(或ip),同端口,同协议视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源。这种安全限制称为同源策略。为什么要有同源限制同源策略的目的主要是为了防止恶意获取/修改网站数据。而这些数据主要包括cookie,LocalStorage,DOM,以及发送的AJAX请求。假设现在没有同源策略,会发

JavaScript设计模式----装饰者模式

装饰者模式的定义:装饰者(decorator)模式能够在不改变对象自身的基础上,在程序运行期间给对像动态的添加职责。与继承相比,装饰者是一种更轻便灵活的做法。装饰者模式的特点:可以动态的给某个对象添加额外的职责,而不会影响从这个类中派生的其它对象;继承的一些缺点:继承会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之改变;超类的内部细节对于子类是可见的,继承常常被

前端JSer装逼手册

在装逼成本越来越高的JS圈,是时候充值一下了 ———— 题记§ 开发Macbook Pro是标配,美其名曰“提高开发体验”什么?你还在用Spotlight?赶紧给我换Alfred! 编辑器,Sublime / Atom / VS Code 三选一虽然很想用IDE,但一定要忍住,并且与人解释道:“启动速度慢,消耗资源多,不适合我这种完美主义者如果不是为了美观,我宁愿使用 V

书页效果

书页效果.book {position: relative;width: 200px;height: 248px;margin-left: 20px;border: 1px # eee solid;background-color: # fff;box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2)}.book::after {positi

在 Angular 2 Component 中使用第三方 JS 库

本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言。如上图,最近遇到一个需求,需要在一个刚启动的 Angular 2 项目中使用 snap.svg 操作页面上的 svg 元素做动画。我粗略的看了下, snap.svg 的实现似乎并没有遵从什么模块规范,就是常见的提供几个全局变量完事。如果真的耿直的在 Component

实现小小的fullpage

需求背景今天运营给了一个需求,要做个引导页,也就是全屏滚动。考虑到只有3张图,就自己码个吧!说干就干。思路设置一个外层container, 用户的可见区域,也就是全屏container内有3个层次,每个层次大小都跟container一样大小每次滚动时候通过css的transform属性进行偏移,并结合transition过渡一下效果*{margin: 0;padding:

JavaScript设计模式学习—策略模式

什么是策略模式策略模式,就是将不同的算法各自封装起来,然后根据程序的不同情况,采用不同的算法,有点像工厂模式。比如在很多种情况下,都要写ifXXX dosometing() else if XXX,这是最基本的程序逻辑写法,但随着情况越来越复杂,那么代码将非常难读,混乱不堪。策略模式实现之前写过的一个页面就非常痛苦,是一个订单页加一些新功能,我是中途接手的,这个页面大概的描

webpack文章(持续更新)

webpack文章: http://webpackdoc.com/install.htmlwebpack打包:http://webpackdoc.com/ (先把文章看一篇,然后照着模仿一遍)http://www.cnblogs.com/vajoy/p/4650467.htmlhttps://github.com/MeCKodo/vue-tutorialhttp://ww

一个0.8简洁的事件订阅和发布Javascript库

onfire.js 是一个很简洁的事件分发,事件订阅和发布的Javascript库(仅仅 0.8kb),简洁实用。Github地址:https://github.com/hustcc/onfire.js可以用于:简单的事件分发;在 react / vue.js / angular 用于跨组件的轻量级实现;事件订阅和发布;在线示例,点击这里;English Version R

怎么写好组件

我们为什么要写组件呢?这里不细分组件、插件、控件,追究其原因无非让代码,能够复用,追求更快的开发效率。其实还有个重要的原因,项目大了之后,难以维护。这个时候就会把项目中重复的部分抽取出来,形成一个组件。但是组件也会有些'缺点',这个最后讲。组件需求要实现如图的一个条件选择器','全选','','','','全不选',''].join('');},getChoseItem: