04 2012 档案
摘要:桌面是一个div,叫它桌面div。这种叫法类推,于是还有图标div,功能栏div,app运行div,正在运行的app标签div。布局方面:功能栏div的z-index为3;图标div,app运行div,正在运行的app标签div的z-index为1;桌面div的z-index为0。被点击的app运行div的z-index为2。功能栏div和桌面div是并列关系;桌面div 包含 图标div,app运行div,正在运行的app标签div。图标div,app运行div,正在运行的app标签div并列。基本事件方面 :图标div,可托拽;鼠标移到图标div,图标div背景色会变;鼠标点击图标div,
阅读全文
摘要:评价UI组件框架,最好从Grid入手,因为Grid通常是最复杂的UI。 wijmoUI的Grid功能比KendoUI多。但是KendoUI对Grid的数据处理比较好,能够取出Grid某一行的数据,不管你修改与否,都是原来绑定的数据。而wijmoUI,不好意思,你不能。但是KendoUI有个不好之处,就是改变了原来的绑定数据结构,会把你原来是数组,改成object。破坏了数据的完整性。
阅读全文
摘要:线性递归:functionfactorial(n){returnn==1?1:n*factorial(n-1);}线性迭代:functionfactorial(n){returnfact_iter(1,1,n);}functionfact_iter(product,counter,max_count){returncounter>max_count?product:fact_iter((counter*product),(counter+1),max_count);}线性递归的计算过程形状,是先扩张后收缩状。解释器还要保存,线性递归的计算步骤。线性迭代保存计算结果,无需解释期保存计算步骤
阅读全文
摘要:普通数组,与Knockout数组关联,Knockout数组与select元素关联。于是,你用Knockout内置函数,处理了Knockout数组,普通数组也随着改变,select元素随着改变。你改变了select元素,Knockout数组随着改变,普通数组随着改变。你通过内置函数改变了普通数组,Knockout数组改变, select元素改变。这就是MVVM,普通数组是Model,Knockout数组是View-Model,select元素是View。但是,你重新绑定了,就另当别论了。 <!DOCTYPEhtml><html><head><script
阅读全文
摘要:CouchDB 作为 NoSQL 潮流中的一份子,很容易被拿来与被贴上一样标籤 (buzzwords) 的资料库作为比较。各个专桉分别被贴上 key-value stores、tuple stores、BigTable Clones、Document store、Graph database 等等标籤。这些标籤分类有时很容易帮助程式设计者概略瞭解后段实做的技术属性,但很多时候,程式设计者的预设看法也可能是错误且偏颇的。我们可以说这些新技术都是想解决 CAP theorem 问题,但其实这些不同的资料库计划各有其想要解决的问题与开发哲学,如果以概括性的功能特徵来作为选择技术的方式,很多时候会发现
阅读全文
摘要:基于版本1.2 文档存储如果说表是SQL Server的存储单元,那么文档documents就是CouchDB的存储单元。每个文档都有一个唯一的ID。开发人员可以根据CouchDB提供的RESTful HTTP API对文档进行增删查改。SQL Server里表的列,也就是字段,有Int,String,Text,boolean等等类型,CouchDB里的文档的字段,也有类型,类型是以字符串为主。CouchDB里的文档暂时没有字段个数限制,和字段的大小限制。CouchDB没有什么锁机制。修改文档的过程就是,读取文档,修改文档,返回文档。如果你读取了文档,正在修改文档,别人早你一步改了同样的文档,
阅读全文
摘要:一些作者已经强调了面向对象程序设计和面向数值程序设计的区别。MacLenna(1982)指出,值(例如数字17)是应用式的和只读的,他们总 是抽象的。对象(例如实例)在一定范围内存在,可以被创造、撤销、共享和更新。数值是引用透明的,引用它的一切事情将使用同样的数值。Smalltalk 也因此受到一些批评,在Smalltalk中任何事物都是对象。无法实现一种正确的区分将导致几个危险。不清楚共享的数据结构是否可能被错误地更新,或者 存在着一个以潜在的代价昂贵的复制开销。在给出了应用式程序设计或面向数值的程序设计的一切优点以后,为什么我们应该完全需要对象呢? 首先,如果我们所采用的数据结构对应于真实
阅读全文
摘要:Knockout的模板绑定,模版可以用来方便构建复杂的HTML界面,比如拥有嵌套结构的HTML代码页面。Knockout有两种方式使用模板:1.Knockout自带的模板引擎。2.第三方的模版引擎,比如jQuery.tmpl Knockout自带模版引擎的参数列表:data-bind="template: { name: 'person-template', data/foreach: buyer,afterRender/afterAdd/beforeRemove}"name参数就是所对应你定义的模板id,data参数就是你的模板数据源,指向一个js对象;f
阅读全文
摘要:HTML4属性绑定例子:<imgid="logo"data-bind="attr:{src:imageSource,alt:imageAlt}"/><script>varviewModel=kendo.observable({imageSource:"http://www.kendoui.com/image/kendo-logo.png",imageAlt:"KendoLogo"});kendo.bind($("#logo"),viewModel);</script
阅读全文
摘要:varviewModel1=newkendo.data.ObservableObject({field1:"value1",field2:"value2"});varviewModel2=kendo.observable({field1:"value1",field2:"value2"});这两段代码效果一致,kendo.data.ObservableObject和View-Model可以互换使用。因为所有View-Model继承于kendo.data.Observable对象。Objectkendo.data.O
阅读全文
摘要:Model View View-Model是一种设计模式来帮助开发者更好地对数据层Model和视图层View进行分层。View-Model层 负责 暴露Model层和View层交互的数据。Kendo MVVM是一种MVVM的实现,当然可以跟Kendo 组件(widgets)和数据源(datasource)进行无缝结合。 首先,我们要创建一个View-Model对象,View-Model对象根据你的Model数据产生。具体做法就是,传入一个JS对象到Kendo.observable方法。 varviewModel=kendo.observable({name:"JohnDoe"
阅读全文
摘要:KendoUI的DataSource绑定功能,既支持本地的JS对象数组,也支持远程的JSON,XML,JSONP。支持对数据的增删查改,以及对本地或服务端的数据排序,分页,筛选,分组,聚集。 1.绑定本地JS对象数组 varmovies=[{title:"StarWars:ANewHope",year:1977},{title:"StarWars:TheEmpireStrikesBack",year:1980},{title:"StarWars:ReturnoftheJedi",year:1983}];varlocalDataSour
阅读全文
摘要:functionfact_iter(product,counter,max_count){if(counter>max_count){returnproduct;}else{fact_iter(counter*product,counter+1,max_count);}//returneval((counter>max_count)?temp=product:fact_iter(counter*product,counter+1,max_count));}alert(fact_iter(1,1,6));这样的代码返回的是undefined。但是改写成函数式写法,就正确返回6!的值了
阅读全文
摘要:function a(){ var i=0; function b(){ alert(++i);//语法解析结果,函数名字b,函数参数列表为空,函数内容alert(++i),函数外部调用列表i。语法执行阶段,发现i不存在当前ScriptObject的函数参数,以及声明变量列表里面,与是就查看函数调用的外部变量列表,存在,保存i的值到闭包。第二次语法解析这个函数,ScriptObject表不重置。 } return b;} var c = a(); c(); c();//第二次语法解析 c();//第三次语法解析 //没有引用,垃圾回收器开始回收b所在的闭包。//JavaScript语言执行代码
阅读全文
摘要:/*alert(typeofnull);//null是一个对象的实例,但它并不指向Object构造器的实例,所以nullinstanceofObject是false。//Object构造器的实例指向空的对象实例,varobj=newObject(),所以objinstanceofObject是true。空的对象实例是原型继承的根基。空的对象实例的proto属性(不可访问的,隐藏的)指向null//所以null和空的对象实例,你是改变不了滴。varnum=0;for(varpropertyNameinnull){num++;alert(propertyName);//null可以有属性,但没有一
阅读全文
摘要:web开发趋势,组件化咯。个人接触最早的web组件,就是asp.net的web控件。效果还可以,还能直接于后台绑定数据源。个性化配置,基本通过IDE的可视化菜单完成,或者微软自己封装的接口(个人感觉接口很烂)。但整个开发思想,确实超前,MVVM,微软很早就搞。而jQueryUI和KendoUI的组件, 前端json格式配置咯,数据绑定,自然也有json。KendoUI比jQueryUI更高级一点,体现在KendoUI有自己的模版语言,有自己的MVVM思想。这说明KendoUI在组件逻辑和组件效果可以更加自定义,或者更优雅的自定义。KendoUI的DropDownList所需引入js文件列表如下
阅读全文