自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (1)
  • 收藏
  • 关注

转载 为什么整个互联网行业都缺前端工程师?

现在,几乎整个互联网行业都缺前端工程师,不仅在刚起步的创业公司,对上市公司乃至巨头这个问题也一样存在。没错,优秀的前端工程师简直比大熊猫还稀少。   每天,HR群都有人在吐槽招不到前端工程师。实话说对这些需求,Betty也无能为力,因为在供不应求的前端招聘市场上,优秀的前端工程师才是有话语权的那一方。不仅在国内的互联网行业,在国外,前端工程师一样是需求旺盛、供不应求的香饽饽。

2015-06-22 13:44:44 1276 1

原创 AMD、CMD和CommonJS规范

AMD 与 CMD

2016-08-11 16:27:08 12850

转载 前端工程的构建工具对比 Gulp vs Grunt

1. Grunt -> Gulp早些年提到构建工具,难免会让人联想到历史比较悠久的Make,Ant,以及后来为了更方便的构建结构类似的Java项目而出现的Maven。Node催生了一批自动化工具,像Bower,Yeoman,Grunt等。而如今前端提到构建工具会自然想起Grunt。Java世界里的Maven提供了强大的包依赖管理和构建生命周期管理。在JavaScript的世界里,G

2016-08-05 09:31:14 733

转载 AngularJS Directive 隔离 Scope 数据交互

directive

2016-07-27 16:28:05 560

翻译 提升AngularJS性能的11条建议

我是一个刚接触AngularJs的新手(尽管我不是web开发的新手),所以请保持怀疑的态度来看这11条建议。我阅读了很多关于如何提升Angular性能的文章,下面就是我的相关总结。内容列表:最少化/避免 监听器(watchers)避免使用ng-repeat。如果你不得不使用ng-repeat的话,请使用分页或者页面滚动。如果可能的话,只绑定一次用$watchCollection 替

2016-05-04 15:02:57 2272

转载 Directive - Compile vs. Link

还是先从栗子们看起~如果我想实现这样一个功能,当一个input失去光标焦点时(blur),执行一些语句,比如当输入用户名后,向后台发ajax请求查询用户名是否已经存在,好有及时的页面相应。输入 hellobug 失去焦点后提示 hellobug 这个用户名已经存在 代码如下:HTML123456 ng-co

2016-04-28 15:05:37 549

翻译 如何在AngularJs中调用第三方插件库

在AngularJs中我们会不可避免的使用第三方库,例如jquery插件库。我们不能散乱的在AngularJS中引入这些库,例如在controller中。那么应该怎么在Angular中使用第三方库呢?如何使用?很简单,给插件写一个directive。在这里,我会使用一个简单的jquery插件Toobar.js 的DEMO。这是我们如何在jquery中创建一个tooltip的:

2016-04-28 11:22:58 21420 1

原创 Handlebars 小技巧

1.注册遍历数组显示索引方法注册:Handlebars.registerHelper('addKey',function(index){ return index + 1; });使用:{{#each this}} {{addKey @index}}{{/each}}2.注册if (v1 == v2){}else{}方法注册:

2016-04-28 09:55:47 3845

转载 $watch How the $apply Runs a $digest

UPDATE: This post is meant for beginners, for those that just started to learn Angular and want to know how data-binding works. If you already know how to use Angular properly, I highly suggest you

2016-04-21 14:07:37 475

原创 前端小技巧总结 v1.0.0

CSS部分1.浮动父级塌陷.clearFix:after{visibility: hidden;display: block;font-size: 0;content: '.';clear:both;height: 0;}JS部分1.iframe 高度自适应parent.document.all('staffList').style.height = documen

2016-04-08 19:47:58 500

转载 jQuery 2.0.3 源码分析Sizzle引擎 - 高效查询

为什么Sizzle很高效?首先,从处理流程上理解,它总是先使用最高效的原生方法来做处理HTML文档一共有这么四个API:getElementById 上下文只能是HTML文档 浏览器支持情况:IE 6+, Firefox 3+, Safari 3+, Chrome 4+, and Opera 10+; getElementsByName,上下文只

2016-02-15 15:45:48 586

转载 WebStorm+Node.js开发环境的配置

1 下载地址:   webstorm:http://www.jetbrains.com/webstorm   node.js:https://nodejs.org/download/2 安装node.js       按照提示一步步安装即可,不用多说,安装完成后检测PATH环境变量是否配置了Node.js,点击开始=》运行=》输入"cmd" => 输入命令"path

2016-02-15 09:57:13 9590 3

转载 前端大牛得到的最佳职业生涯建议

伯乐在线导读:原文作者尼古拉斯·泽卡斯( Nicholas C. Zakas)是一位前端大牛工程师,目前在 Box 公司任职,之前是在雅虎将近工作 5 年。在雅虎期间,他是雅虎首页的前端技术主管,并且是 YUI 库的贡献者。 Nicholas 编写的技术书有:《Maintainable JavaScript | 编写可维护的 JavaScript》、《Professional JavaScri

2016-01-20 14:23:25 3361

转载 前端程序员:月薪5K到5万,我干了啥

摘要: 曾经只要会编写HTML、CSS、JS就能找到一份不错的前端开发工作,而现在web开发越来越复杂,需要掌握的技能越来越多,比如载入时间,性能,不同屏幕尺寸, 不同输入方式, build系统, 部署策略等都是前端开发需要考虑的 ...   高贵的前端程序猿们:   如何在前端开发这种高精尖的技术领域找到心仪的工作?

2016-01-20 13:59:30 10392 1

转载 jQuery源码分析系列 : Ajax 整体结构

jQuery.Ajax做了那些事?我们知道AJAX的底层实现其实是很简单的.抛开IE不说,标准的w3c直接提供了XMLHttpRequest方法关于AJAX基础请飞机 触碰jQuery:AJAX异步详解我们主要站在设计的角度理解,如何设计出低耦合高内聚的代码jQuery对Ajax的处理主要体现在对浏览器兼容,数据的处理及过滤,各种事件的封装上主要有以下几部分

2016-01-15 11:33:38 2106

转载 jquery源码分析——元素大小

HTML息息相关的的样式偏移量offsetWidth offsetHeight offsetLeft offsetTopoffsetHeight/offsetWidth: 表述元素的外尺寸:元素内容+内边距+边框(不包括外边距)offsetLeft/offsetTop: 表示该元素的左上角(边框外边缘)与已定位的父容器(offsetParent对象)左上角的距离。o

2016-01-09 11:51:53 902

原创 转盘抽奖插件-jquery.lottery.js

抽奖插件

2016-01-08 16:59:30 9959 2

原创 表单实时校验插件——jquery.validateForm.js(v.2.0)

插件名:jquery.validateForm.js依赖: jquery ,  jquery.validateForm.css参数:暂无参数(有一个默认的msg提示)说明:实现了input =text , select ,textArea 的实时必填校验实现了input = number 的必填 数字类型 参数范围的校验使用方法:1.引入jquery,jquer

2015-12-31 16:08:14 3504

转载 解密jQuery内核 DOM操作的核心函数domManip

domManip是什么dom即Dom元素,Manip是Manipulate的缩写,连在一起就是Dom操作的意思。.domManip()是jQuery DOM操作的核心函数对封装的节点操作做了参数上的校正支持,与对应处理的调用append、prepend、before、after、replaceWithappendTo、prependTo、insertBefo

2015-12-28 17:43:01 667

原创 基于ajaxFileUpload的文件上传插件(修复onchange第二次失效)

关于input file第一次上传后失效的问题

2015-12-23 15:06:51 4646

原创 jQuery设计模式(二)

Iterator(迭代器)模式 Iterator是一种设计模式,其中,迭代器顺序访问聚合对象的元素,无需公开其基本形式。 迭代器封装特定迭代如何发生的内部结构。对于jQuery的jQuery.fn.each()迭代器,我们实际上能够使用jQuery.each()后面的底层代码来遍历一个集合,而不需要阅读或者理解提供这种功能的后台工作代码。 这种模式可以被视为一种特殊的facade,我们显式地

2015-12-18 14:18:15 1289

原创 如何写jQuery插件

在这里我们借助LightingWeight Start 模式实现一个简单的高亮的jQuery插件。LightingWeight Start模式使用了下列内容:常见最佳实践,例如,放在函数之前的分号window、document 和undefined作为参数传入基本的默认对象简单的插件构造函数,用于初始化创建相关的逻辑,以及用于所使用元素的赋值扩展有默认值的选项构造函数周围的ligh

2015-12-15 16:01:27 498

原创 jquery中的设计模式(一)

Composite(组合)模式composite模式描述了一组对象,可以使用与处理对象的单个实例同样的方式来进行处理。这样能使我们能够以统一的方式处理单个对象或者组合。在jQuery中,把方法应用于元素或元素集合时,可以使用统一的方式来处理它们,因为这两种选择都会返回jQuery对象。例: $("#test").addClass(".red"); $(".test")

2015-12-15 11:55:48 3250

原创 一款单选框radio样式

.radio-btn { width: 20px; height: 20px; display: inline-block; float: left; margin: 3px 7px 0 0; cursor: pointer; po

2015-12-10 09:57:24 4047

转载 一篇给小白看的 JavaScript 引擎指南

关于本文标题,我并不认为参与写或者读本文的人是白痴。但是有时某个话题会让你觉得自己就像个白痴一样,而 JavaScript 引擎就是这些话题之一,至少对于我来说是这样。有时编写 Web 应用的代码会感觉充满魔力,因为我们只是写了一系列字符,就能在浏览器里看到效果了。但是理解魔法背后的技术,可以帮助你更好地提高编程技巧。至少当你试图解释在 JavaScript 驱动的 web 或移动应用的幕

2015-12-07 17:53:32 590

原创 关于textarea打印问题

遇到的问题   textarea 的高度不能自适应,当文本的内容超出文本框时,会出现滚动条,而且部分内容不能显示   如果textarea文本是只读的情况解决方法:    js调节文本框的高度   document.addEventListener("DOMContentLoaded",function(){ var elem=document.getEl

2015-12-04 17:00:23 4057

转载 解密jQuery事件核心 - 模拟事件(四)

前几章已经把最核心的实现都分解过了,这一章我们看看jQuery是如何实现事件模拟的在Internet Explorer 8和更低,一些事件change 和 submit本身不冒泡,但jQuery修改这些冒泡,创建一致的跨浏览器的行为。焦点事件blur :在这个事件触发前,元素已经失去焦点,不冒泡,同步触发。target 指向当前失去焦点的元素。focus

2015-12-03 11:43:19 571

转载 解密jQuery事件核心 - 自定义设计(三)

本文重点:自定义事件“通过事件机制,可以将类设计为独立的模块,通过事件对外通信,提高了程序的开发效率。”对象之间通过直接方法调用来交互1)对象A直接调用对象B的某个方法,实现交互;直接方法调用本质上也是属于一种特殊的发送与接受消息,它把发送消息和接收消息合并为一个动作完成;方法调用方和被调用方被紧密耦合在一起;因为发送消息和接收消息是在一个动作内完成,所以无法做

2015-11-26 15:23:10 714

原创 AMD规范与requireJS

模块简介 异步模块定义(AMD)的整体目标是提供模块化的JavaScript解决方案,以便开发人员使用。它诞生于使用XHR+eval的Dojo开发经验,这种格式的支持者希望能避免未来的任何解决方案受到过去解决方案缺点的影响。 AMD模块格式本身就是对定义模块的建议,其模块和依赖都可以进行异步加载。它有很多独特的优点,包括可以异步,并且本质上具有高度灵活性,消除了代码和模块之间可能惯有的紧耦

2015-11-17 19:24:22 1517

转载 也谈基于NodeJS的全栈式开发

基于NodeJS的前后端分离前言为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异。痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图探索一条全新的前后端分离模式。随着不同终端(Pad/Mobile/PC)的兴起,对开发人员的要求越来越高,纯浏览器端的响应式已经不能满足用户体

2015-10-29 10:58:29 1568

转载 移动浏览器流量超APP两倍,胜利终究属于谁?

自从Facebook创始人马克扎克伯格2012年放言“豪赌HTML5是Facebook犯下的最大错误”后,业界关于移动优先的企业战略就开始向APP倾斜,一家互联网公司,不管你的业务是否需要APP,如果没有APP上架,你都不好意思跟人打招呼。   但是2015年以来,随着HTML5和移动web设计的逐渐成熟,以及APP产品成本飙升投资回报率持续下降,业界关于“回归”web的论调开始抬

2015-10-29 10:11:14 945 1

转载 前端优化带来的思考,浅谈前端工程化

重复优化的思考这段时间对项目做了一次整体的优化,全站有了20%左右的提升(本来载入速度已经1.2S左右了,优化度很低),算一算已经做了四轮的全站性能优化了,回顾几次的优化手段,基本上几个字就能说清楚:传输层面:减少请求数,降低请求量执行层面:减少重绘&回流传输层面的从来都是优化的核心点,而这个层面的优化要对浏览器有一个基本的认识,比如:① 网页自上而下的解析渲

2015-10-29 09:31:12 1279

原创 中介者(Mediator)模式

应用程序,无论其大小,都是由一些单个对象所组成。所有这些对象需要一种方式来实现相互通信,而这种通信在一定程度上不降低可维护性,也不损坏那种安全的改变部分应用程序而不会破坏其余部分的能力。随着应用程序的增长,将添加越来越多的对象。然后在代码重构期间,对象将被删除或重新整理。当对象互相知道太多信息并且直接通信时,这将会导致不良的紧耦合问题。当对象间紧耦合时,很难改变单个对象的同时不影响其他的多个对象。

2015-10-25 16:17:38 576

转载 解密jQuery事件核心 - 委托设计(二)

从上章就能得出几个信息:事件信息都存储在数据缓存中对于没有特殊事件特有监听方法和普通事件都用addEventListener来添加事件了。而又特有监听方法的特殊事件,则用了另一种方式来添加事件。 本章分析的重点:通过addEventListener触发事件后,回调句柄如何处理?具体来说就是,如何委派事件的,用到哪些机制,我们如果用到项目上是否能借鉴?

2015-10-17 11:28:40 723

转载 解密jQuery事件核心 - 绑定设计(一)

说起jQuery的事件,不得不提一下Dean Edwards大神 addEvent库,很多流行的类库的基本思想从他那儿借来的jQuery的事件处理机制吸取了JavaScript专家Dean Edwards编写的事件处理函数的精华,使得jQuery处理事件绑定的时候相当的可靠。在预留退路(graceful degradation),循序渐进以及非入侵式编程思想方面,jQuery也做的

2015-10-13 19:49:19 816

转载 jQuery 2.0.3 源码分析 事件体系结构

那么jQuery事件处理机制能帮我们处理那些问题?毋容置疑首先要解决浏览器事件兼容问题可以在一个事件类型上添加多个事件处理函数,可以一次添加多个事件类型的事件处理函数提供了常用事件的便捷方法支持自定义事件扩展了组合事件提供了统一的事件封装、绑定、执行、销毁机制……为了更深入的理解幕后的实现,所以先整理整体的结构思路,从1.7后就去除了live绑定,所以现在的整个事件的API

2015-10-12 11:34:33 449

原创 javascript设计模式之策略(Strategy)模式

策略模式支持我们在运行的时候选择算法。代码的客户端可以使用同一个接口来工作,但是它却根据客户端正在试图执行任务的上下文,从多个算法中选择用于处理特定任务的算法。  使用策略模式的其中一个例子是解决表单验证的问题。可以创建一个具有validate()方法的验证器对象。无论表单的具体类型是什么,该方法都将会被调用,并且返回相同的结果,一个未接验证的数据列表以及任意的错误信息。  但是根据具体的

2015-10-12 10:39:31 541

转载 jQuery 2.0.3 源码分析 事件绑定 - bind/live/delegate/on

事件(Event)是JavaScript应用跳动的心脏,通过使用JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应事件的基础就不重复讲解了,本来是定位源码分析实现的, 所以需要有一定的基础才行为了下一步更好的理解内部的实现,所以首先得清楚的认识到事件接口的划分网上资料遍地都是,但是作为一个jQuery系列的源码分析,我还是很有必要在重

2015-10-09 21:55:39 499 1

原创 javascript设计模式之Decorator(装饰者)模式

Decorator是一种结构型设计模式,用于促进代码复用,是一种可行的对象子类化的替代方案。Decorator提供了将行为动态添加到系统现有类的能力。其想法是,装饰者本身对于类原有的基本功能来说并不是必要的;否则,它就可以合并到超类本身。装饰者可以用于修改现有的系统,希望在系统中为对象添加额外的功能,而不需要大量修改使用它们的底层代码。开发人员使用装饰者的一个原因是,应用程序可能包含需要大量不

2015-10-08 16:30:08 947

原创 juery源码之queue(队列)

queue是jQuery的队列方法,可以用于动画处理,已经多个回调的处理。   queue模块向外开放的api分别是: $上,即工具方法上的$.queue()、$.dequeue()、$._queueHooks() jQuery实例方法,queue、dequeue、clearQueue、promise  queue是入列,dequeue是出列。$.queue():

2015-09-22 15:27:59 948

抽奖插件DEMO

jqeury转盘抽奖的DEMO,其中jquery.lottery.js是我自己写的一个jquery插件

2016-01-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除