Fork me on GitHub
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 18 下一页
  2013年7月15日
摘要: Computed Observables如果你有监控属性firstName和lastName的话,此时如果你想要显示全名?这个时候computed(以前叫做依赖)监控属性就出马了,这是一个函数用来依赖一个或者多个监控属性,并且当其中的任何一个依赖对象被改变的时候都将会自动更新。例如,view model类function AppViewModel() { this.firstName = ko.observable('Bob'); this.lastName = ko.observable('Smith');}你可以增加一个computed计算依赖的来得到一个全 阅读全文
posted @ 2013-07-15 15:39 【艾伦】 阅读(7991) 评论(2) 推荐(3) 编辑
  2013年7月13日
摘要: KO是什么?KO不是万能的,它的出现主要是为了方便的解决下面的问题:UI元素较多,用户交互比较频繁,需要编写大量的手工代码维护UI元素的状态、样式等属性?UI元素之间关系比较紧密,比如操作一个元素,需要改变另外一个元素的状态?DOM元素与Js对象之间的数据同步?前端javascript代码组织不理想?用户输入数据校验、DOM操作、后台交互…,交织在一起?基础概念一:viewModel负责处理UI事件的响应,响应用户操作。负责保存领域模型在前端的变体Model’,比如:Student模型,在UI元素与Model之间同步数据(用户修改input-->ko修改model,反之亦然)在需要的时候 阅读全文
posted @ 2013-07-13 10:18 【艾伦】 阅读(1528) 评论(0) 推荐(2) 编辑
  2013年7月12日
摘要: Backbone.js 是一个在JavaScript环境下的 模型-视图-控制器 (MVC) 框架。任何接触较大规模项目的开发人员一定会苦恼于各种琐碎的事件回调逻辑、以及金字塔般的代码。而且,在传统的Web应用程序代码中,不可避免的都有在应用逻辑中加入显示数据的代码的情况。当项目规模愈发变大时,这种形式的代码变得越发的难以维护,因为任何在主干逻辑中的变更都可能影响到数据显示逻辑,反之亦然。 Backbone就是要来解决这样的代码耦合的问题。它通过提供一个控制层-显示层的框架,以及模版(template)来分离各自逻辑。这样的MVC框架类似于传统意义上桌面程序以及服务器端程序的程序框架。第一篇. 阅读全文
posted @ 2013-07-12 12:40 【艾伦】 阅读(1498) 评论(1) 推荐(4) 编辑
摘要: 最近抽出点时间研究MVVM,包括司徒正美的avalon,google的angular,以及Knockout,博客园Tom的Knockout指南 时隔2年了,ko更新了不少,所以文档也相应的变化了,所以本人从学习的角度就翻译下官方的新的教程文章。avalon就是从KO演变过来的,不过加入ng,emberjs等框架的特色,加入许多巧妙的设计,算是很短小精悍的框架了,大家有兴趣可以对比下。Knockout是构建在3个核心的特性上的:监控属性(Observables)和依赖跟踪(Dependency tracking)声明式绑定(Declarative bindings)模版(Declarative 阅读全文
posted @ 2013-07-12 10:50 【艾伦】 阅读(1955) 评论(3) 推荐(2) 编辑
  2013年7月5日
摘要: 叶小钗的博客最近都在讨论面试题目正好以前也看过一篇,就借花献佛拿出来分享一下 http://perfectionkills.com/javascript-quiz/附带了自己的理解,答案有争议的地方欢迎大家指出题目一(function(){ return typeof arguments; })(); 答案"object"arguments是对象,伪数组有两件事要注意这里:参数不是数组,它是一个数组一样的物体,你可以使用方括号和整数索引的元素,但方法通常可在一个如推上不存在参数数组Array.prototype.slice.call(arguments); 转成数组当然ar 阅读全文
posted @ 2013-07-05 20:24 【艾伦】 阅读(12292) 评论(45) 推荐(35) 编辑
  2013年7月4日
摘要: 姊妹篇 移动web app开发必备 - 异步队列 Deferred在分析Deferred之前我觉得还是有必要把老套的设计模式给搬出来,便于理解源码!观察者模式观察者模式( 又叫发布者-订阅者模式 )应该是最常用的模式之一.它定义了一种一对多的关系让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。使用观察者模式的好处:支持简单的广播通信,自动通知所有已经订阅过的对象。页面载入后目标对象很容易与观察者存在一种动态关联,增加了灵活性。目标对象与观察者之间的抽象耦合关系能够单独扩展以及重用。在这种模式中,有两类对象,分别是“观察者- 阅读全文
posted @ 2013-07-04 09:32 【艾伦】 阅读(3923) 评论(3) 推荐(2) 编辑
  2013年7月3日
摘要: 问题描述:项目在祖先元素上绑定了 touchstart,touchmove,touchend事件,用来处理全局性的事件,比如滑动翻页正常状态下:用户在子元素上有交互动作时,默认状态下都是会冒泡到祖先元素响应特定情况下:子元素单独绑定了事件特性情况下需要阻止全局事件常规的做法就是stopPropagation阻止即可但如果子元素绑定的是 click,touchmove,touchend这类事件的话,问题就来了全局的touchstart事件也会被冒泡触发发一段项目图:/** * ppt事件接口 * * 允许用户自定义其行为 * 1 支持14种操作行为 * 2 默认对象都具有滑动翻页... 阅读全文
posted @ 2013-07-03 15:16 【艾伦】 阅读(28395) 评论(4) 推荐(8) 编辑
摘要: 背景移动web app开发,异步代码是时常的事,比如有常见的异步操作:Ajax(XMLHttpRequest)Image Tag,Script Tag,iframe(原理类似)setTimeout/setIntervalCSS3 Transition/AnimationHTML5 Web DatabasepostMessageWeb WorkersWeb Socketsand more…后面几个是CSS3 HML5加入的新API.这些接口都是会产生异步的操作比如本人的一个phonegap项目,操作HTML5本地数据库(HTML5 Web Database)就是一个异步的过程,如果同时执行多个查 阅读全文
posted @ 2013-07-03 09:04 【艾伦】 阅读(3960) 评论(3) 推荐(10) 编辑
  2013年7月2日
摘要: 引子:最近工作挺忙,avalon只能断断续续的写下去了,大概看了下angular的源码,看到小一半就比较难坚持了,是块硬骨头,慢慢啃吧不过angular的的文档中用词还是很优雅:HTML编译器指令编译链接过滤器注入器控制器管道 等等…看起来觉得老高级,其实avalon也间接的部分实现,原理也不是很复杂avalon版本更新很快,新版的加入了AMD规范的模块加载器,还修复了很多BUG,不过相信短期内实现的核心还是不会变化,所以我依然以现在的版本分析为主编译期视图背后的代码就是控制器,在mvvm中就是vm视图模型,它的主要工作就是构造模型,并把模型与回调方法一并发送到视图,视图可以看作作用到模版.. 阅读全文
posted @ 2013-07-02 12:41 【艾伦】 阅读(4008) 评论(2) 推荐(6) 编辑
  2013年7月1日
摘要: 随着互联网产业的爆炸式增长,与之伴生的Web前端技术也在历经洗礼和蜕变。尤其是近几年随着移动终端的发展,越来越多的人开始投身或转行至新领域,这更为当今的IT产业注入了新的活力。尽管Web前端技术诞生至今时日并不长,但随着Web技术的逐渐深入,今后将会在以下几方面发力。Web移动终端开发。JavaScript的兄弟们。百花齐放的类库和框架。工程化的Web前端开发规范。Web移动终端开发PhoneGap 一个开源的开发框架,使用HTML、CSS和JavaScript来构建跨平台的移动应用程序。它使开发者能够利用iPhone、Android、 Palm、Symbian、BlackBerry、Wi.. 阅读全文
posted @ 2013-07-01 18:05 【艾伦】 阅读(973) 评论(2) 推荐(1) 编辑
摘要: 1 链式赋值的陷阱 1: function func(){ 2: var innerVar = globalVar = 20; 3: } 4: func(); 5: console.log(typeof globalVar); //输出结果为?上面最后的输出结果是?相信不少人会毫不犹豫地说undefined,确定?真相是:number原因:从右至左操作符的优先级。首先,优先级较高的是表达式b=0,此时b未经声明。表达式的返回值为0,它被赋给var声明的局部变量a,如以下代码所示var a = (b = 0);建议:对链式赋值的所以变量都进行声... 阅读全文
posted @ 2013-07-01 08:19 【艾伦】 阅读(683) 评论(0) 推荐(1) 编辑
  2013年6月30日
摘要: 移动设备的用户越来越多,每天android手机的激活量都已经超过130万台,所以我们面向移动终端的WebAPP也开始跟进了。本文主要介绍webapp的开发与调试的相关知识和经验,以及给出几种可选的解决方案。 一、基本概念 (1) CSS pixels与device pixels CSS pixels: 浏览器使用的抽象单位, 主要用来在网页上绘制内容。 device pixels: 显示屏幕的... 阅读全文
posted @ 2013-06-30 20:10 【艾伦】 阅读(1220) 评论(0) 推荐(3) 编辑
摘要: 英文原文:What's The Point Of Promises?迄今为止,可能每个JavaScript开发者和他们的祖母都听说过Promises。如果你没有,那么你即将会。promises的概念是由CommonJS小组的成员在 Promises/A规范 中提出来的。Promises被逐渐用作一种管理异步操作回调的方法,但出于它们的设计,它们远比那个有用得多。事实上,由于它们的多种用法,有无数人告诉我——在我写过一些关于promises的东西后——我“遗漏了promises的重点”。那么什么是promises的重点呢?一点关于Promises的东西在我开始promise的“重点”之前 阅读全文
posted @ 2013-06-30 19:47 【艾伦】 阅读(6042) 评论(1) 推荐(2) 编辑
  2013年6月28日
摘要: Bootstrap是Twitter推出的一个开源的用于前端开发的工具包,怎么用直接官网 http://twitter.github.io/bootstrap/我博客的定位就是把这些年看过的源码给慢慢的总结出来,才疏学浅,不到位的见谅~css部分呢Bootstrap由动态CSS语言Less写成,在很多方面类似CSS框架BlueprintBootstrap自带了13个jQuery插件,jquery这个东东,也是个版本帝,现在都10.1了…一直做移动app,都是用的自己的框架或者zepto,jquery就没正儿八经的用过,源码就看过1.42的后来改动太大了,具体慢慢分析看看源码吧引入 1: ... 阅读全文
posted @ 2013-06-28 14:53 【艾伦】 阅读(55900) 评论(4) 推荐(15) 编辑
  2013年6月27日
摘要: http://ux.sohu.com/topics/50972d9ae7de3e752e0081ff http://taligarsiel.com/Projects/howbrowserswork1.htm 浏览器工作大流程 从上面这个图中,我们可以看到那么几个事: 1)浏览器会解析三个东西: 一个是HTML/SVG/XHTML,事实上,Webkit有三个C++的类对应这三类文档。解析这三种... 阅读全文
posted @ 2013-06-27 20:28 【艾伦】 阅读(5224) 评论(2) 推荐(1) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 18 下一页