chaojidan

导航

#

[置顶] Backbone入门讲解

摘要: Backbone是一个实现了web前端mvc模式的js框架。一种解决问题的通用方法,我们叫做模式。设计模式:工厂模式,适配器模式,观察者模式等,推荐js设计模式这本书。设计模式是一种思想。框架模式:MVC,MVP,MVVM等。框架模式是开发项目的一种方案。MVC指的是什么?M:model(模型),V... 阅读全文

posted @ 2015-01-07 21:59 chaojidan 阅读(7914) 评论(11) 推荐(10) 编辑

#

[置顶] underscore.js库的浅析

摘要: Underscore并没有在原生的JavaScript对象原型中进行扩展,而是像jQuery一样,将数据封装在一个自定义对象中(下文称“Underscore对象”)。生成一个Underscore对象:Underscore默认使用_(下划线)来访问和创建对象,但这个名字可能不符合我们的命名规范,或容易... 阅读全文

posted @ 2014-12-11 10:30 chaojidan 阅读(1314) 评论(0) 推荐(2) 编辑

#

[置顶] Backbone框架浅析

摘要: Backbone是前端mvc开发模式的框架。它能够让view和model相分离,让代码结构更清晰简答,开发进度加快,维护代码方便。但是,现在出了一种mvvm框架,它是下一代前端mvc开发模式的框架,代表作是Angular.js,改天有时间去研究下。现在先来研究下Backbone框架。Backbone... 阅读全文

posted @ 2014-12-10 15:43 chaojidan 阅读(2840) 评论(0) 推荐(0) 编辑

#

[置顶] Handlebars模板库浅析

摘要: Handlebars模板库简单介绍Handlebars是JavaScript一个语义模板库,通过对view(模板)和data(ajax请求的数据,一般是json)的分离来快速构建Web模板。它采用"Logic-less template"(无逻辑模版)的思路,在加载时被预编译(先对view进行编译生... 阅读全文

posted @ 2014-12-09 14:00 chaojidan 阅读(3586) 评论(0) 推荐(0) 编辑

#

[置顶] seajs的CMD模式的优势以及使用

摘要: 之前有一篇博客非常详细的介绍了sea.js的加载流程,以及源代码实现,链接地址:http://www.cnblogs.com/chaojidan/p/4123980.html这篇博客我主要讲下sea.js的介绍和使用。首先,先介绍下sea.js的CMD规范,以及跟其他规范的区别。CommonJS 原... 阅读全文

posted @ 2014-12-06 10:14 chaojidan 阅读(1731) 评论(0) 推荐(0) 编辑

#

[置顶] 第十五课:奇葩的元素节点iframe

摘要: iframe一般用来加载一个页面,然后嵌入到主页面中。创建起来消耗资源,而且消耗连接数。但是它是一个物超所值的东西,可以实现无缝刷新,模拟onhashchange跨域,安全的加载第三方资源与广告,实现富文本编辑,文件上传,用它搞定IE6-IE7的select BUG(select标签会移到遮罩层的上... 阅读全文

posted @ 2014-12-05 15:06 chaojidan 阅读(2094) 评论(0) 推荐(2) 编辑

#

[置顶] js原生方法传参的细节(面试必问)

摘要: 废话不说,直接上题。slice(),接收两个参数,第一个为开始index(从0开始),第二个为结束的index(也是从0开始,但是不包括index本身,只到index-1)。返回值是截取的数组,原数组不变化。传第三个参数,没有作用。splice(),接收无数个参数,第一个为开始的index(从0开始... 阅读全文

posted @ 2014-12-04 11:04 chaojidan 阅读(1418) 评论(0) 推荐(0) 编辑

#

[置顶] 第十二课:Sizzle引擎详解

摘要: 这篇博客难度太大,跟前端开发其实没什么关系,如果你想成为大牛,那就去了解下吧。如果你还不想,那可以忽略,毕竟面试官也不会问到这里来,因为他也不太懂。呵呵。Sizzle引擎是jQuery的选择器,它大部分操作都是从右到左进行选择,特殊选择符会从左到右。用户输入$("div"),$("div p.cla... 阅读全文

posted @ 2014-12-03 17:38 chaojidan 阅读(1137) 评论(7) 推荐(0) 编辑

#

[置顶] 第三课:sea.js模块加载原理

摘要: 模块加载,其实就是把js分成很多个模块,便于开发和维护。因此加载很多js模块的时候,需要动态的加载,以便提高用户体验。在介绍模块加载库之前,先介绍一个方法。动态加载js方法:function loadJs(url , callback){ var node = document.createEle... 阅读全文

posted @ 2014-11-27 15:10 chaojidan 阅读(3659) 评论(0) 推荐(0) 编辑

#

[置顶] 腾讯前端面试题详解

摘要: 废话不说,直接上题。1.用正则把yya yyb yyc变成yya5 yyb6 yyc7? 正则用的不多,思想是对的 用replace方法,但是第二个需要用function,得出以下方法:其实就是考replace方法的第二个参数,function。j=5;str.replace(/\w+/g,fun... 阅读全文

posted @ 2014-11-20 16:24 chaojidan 阅读(6629) 评论(0) 推荐(0) 编辑

2022年11月23日 #

面试题目

摘要: 1.dns-prefetch preload prefetch的作用和区别? 当一个网站,打开了许多第三方链接,dns解析可能会造成一定程度的延迟,dns-prefetch 可以掩盖dns解析的延迟 preload对应一定会加载的资源,并强制将它的请求优先级提到前面,加载后先存放在内存中,不会立即执 阅读全文

posted @ 2022-11-23 15:14 chaojidan 阅读(29) 评论(0) 推荐(0) 编辑

2022年11月10日 #

技术文章

摘要: 怎么调试npm包:https://mp.weixin.qq.com/s/nOFKKCwUDCYW1HAGH25W-Q https://mp.weixin.qq.com/s/0Av-WqiyB3ApNm2KcVzUIw eslint的原理 https://mp.weixin.qq.com/s/x4LC 阅读全文

posted @ 2022-11-10 17:11 chaojidan 阅读(19) 评论(0) 推荐(0) 编辑

2016年3月28日 #

阅读寒冬前端大神文章有感

摘要: 最近,在微博上面看到了寒冬大神的一篇文章,甚是认同,所以写下自己觉得有用的地方: 我认为,前端开发主要在两个方面,一部分是”能力”,一部分是”知识”。我个人的观点,能力占百分之八十,知识占百分之二十。 最新出来的Angular、React、ES2015,其实都在知识里面,知识又分成两部分,一部分我把 阅读全文

posted @ 2016-03-28 21:02 chaojidan 阅读(528) 评论(0) 推荐(0) 编辑

2015年6月10日 #

微信支付实战详解

摘要: 最近的旅游度假项目,需要用到微信支付,因为我们是在微信公众号里面,通过H5页面进行微信支付,因此用到的微信支付是:公众号微信支付,也称作jsAPI微信支付。至于,微信支付的接口,请看我的另外一篇博客http://www.cnblogs.com/chaojidan/p/4503878.html。微信支... 阅读全文

posted @ 2015-06-10 16:21 chaojidan 阅读(1743) 评论(1) 推荐(0) 编辑

2015年6月1日 #

zepto的touch模块解决click延迟300ms问题以及点透问题的详解

摘要: 大家都知道移动端的click事件会延迟300ms触发,这时大家可以使用zepto的touch模块,里面定义了一个tap事件,通过绑定tap事件,可以实现点击立即触发的功能。那么,它的tap事件是怎么实现的呢?这是我们要解决的第一个问题。第二个问题,大家都知道zepto的tap事件会有点透的问题,那么... 阅读全文

posted @ 2015-06-01 16:48 chaojidan 阅读(2042) 评论(0) 推荐(0) 编辑

2015年5月22日 #

移动端click事件延迟300ms的原因以及解决办法

摘要: 这要追溯至 2007 年初。苹果公司在发布首款 iPhone 前夕,遇到一个问题 —— 当时的网站都是为大屏幕设备所设计的。于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题。这当中最出名的,当属双击缩放(double tap to zoom)。这也是会有上述 300... 阅读全文

posted @ 2015-05-22 17:31 chaojidan 阅读(19441) 评论(0) 推荐(2) 编辑

2015年5月19日 #

seaJS循环依赖的解决原理

摘要: seajs模块的六个状态。var STATUS = { 'FETCHING': 1, // The module file is fetching now. 模块正在下载中 'FETCHED': 2, // The module file has been fetched. 模块已下载 'SA... 阅读全文

posted @ 2015-05-19 16:58 chaojidan 阅读(1462) 评论(0) 推荐(1) 编辑

插件编写的高可配模式

摘要: 在应用一组元素时,通过HTML5数据属性可以在单个元素级别上定制选项,而不需要实例化每个元素让其拥有不同的默认值。比如:htmlaabbjs$(".item-a").draggable({"position": "top-left"});$(".item-a").draggable({"positi... 阅读全文

posted @ 2015-05-19 14:17 chaojidan 阅读(355) 评论(0) 推荐(0) 编辑

2015年5月15日 #

jQuery插件编写规范

摘要: 第一种方法:在很多基于jQuery或基于Zepto的插件中,在立即函数执行前面会加上";"这个符号。这是为了防止前面的其他插件没有正常关闭。在立即执行函数执行时,会一般会传入jQuery,window等。举个例子:;(function($,window,undefined){ //.....})(j... 阅读全文

posted @ 2015-05-15 16:15 chaojidan 阅读(659) 评论(0) 推荐(1) 编辑

2015年5月14日 #

微信支付详解

摘要: 1.为什么会有两种JS方法可以发起微信支付?当你登陆微信公众号之后,左边有两个菜单栏,一个是微信支付,一个是开发者中心。在开发者中心中,有一个微信JS-SDK说明文档。在此说明文档中,有一个发起微信支付的请求APIwx.chooseWXPay({ timestamp: 0, // 支付签名时间... 阅读全文

posted @ 2015-05-14 17:26 chaojidan 阅读(6238) 评论(2) 推荐(1) 编辑