摘要:
1.从Selenium IDE1.8.1录制好脚本后,转换成Python2(Remote Control)脚本,注意实例的名字空格问题。有空格的话,转换成的python脚本的类名字,也有空格,这会造成语法问题。 解决办法:用_代替空格。2.如果转换好的脚本有中文,往往会报编码错误,Non-ASCII character '\xe7' in file。解决方法:在python文件第一行加入#-*- coding: UTF-8 -*- 3.在firefox11.0浏览器里,selenium IDE1.8.1对KendoUI的DropDownList支持不是很好,默认selenium 阅读全文
摘要:
全局变量是魔鬼。因为,你不小心,在代码的某一处修改了全局变量, 会导致依赖全局变量的其它模块出错。而且出错原因难调试,难找到。再者就是,网页运行肯定用到window对象,浏览器引擎又要遍历一次window的属性,性能下降。那么,如何避免方法一:只创建一个全局变量。MYAPP.stooge={"first-name":"Joe","last-name":"Howard"};MYAPP.flight={airline:"Oceanic",number:815,departure:{IATA:&quo 阅读全文
摘要:
1.值更改触发时间更改view后,焦点离开当前dom元素,view-model的值就改变。你可以设置valueUpdate: "afterkeydown"使得view值改变,view-model值立马改变(类似于onkeyup事件)。更改view-model后,view的值立马改变。 2.注意引用传递和值传递值传递,最常见的就是你model类型是string和number,于是你改了model的值,view-model不变。引用传递,最常见的就是Array类型,你的Model类型Array数据,shift()了,你的view-model改变,你的view也改变了。3.sel 阅读全文
摘要:
比如,数据库是couchDB,存储的数据是json格式。为了存储,json数据,越简单,越明了越好。于是json传到前台页面, 发现存储的json格式,不适合前台Knockout绑定的json格式。于是出现了,格式转换函数,双向的,存储转绑定,绑定转存储。转换函数如下: functionKoJSONtoCouchJSON(Arg,stringKey){if(ArginstanceofArray){varinputArray=Arg;varoutputArray=[];for(vari=0;i<inputArray.length;i++){outputArray.push(inputArr 阅读全文
摘要:
桌面是一个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没有什么锁机制。修改文档的过程就是,读取文档,修改文档,返回文档。如果你读取了文档,正在修改文档,别人早你一步改了同样的文档, 阅读全文