随笔分类 -  动人的JavaScript

摘要:1.如果前端页面是增删查改这种需求,采用MVC思想开发。MVC,基本思想是,Model层发生变化,就通知View层;View层发生变化,就通知Model层;Control层就是设置变化入口。Model处理,View处理要隔离开。用js对象进行变量和函数分类。2.后台数据放入前台html页面里面,会发... 阅读全文
posted @ 2013-03-11 20:35 草珊瑚 阅读(370) 评论(0) 推荐(1) 编辑
摘要:话说js设计模式有关的书籍有Ross Harmes / Dustin Diaz 的《Javascript设计模式》,Stoyan Stefanov的《JavaScript Patterns》,Addy Osmani的《Learning JavaScript Design Patterns》。第一本很... 阅读全文
posted @ 2013-03-02 22:56 草珊瑚 阅读(566) 评论(0) 推荐(0) 编辑
摘要:来自:http://www.howzhi.com/group/it/discuss/10051#r3Ctrl+D 选词 (反复按快捷键,即可继续向下同时选中下一个相同的文本进行同时编辑)Ctrl+G 跳转到相应的行Ctrl+J 合并行(已选择需要合并的多行时)Ctrl+L 选择整行(按住-继续选择下行)Ctrl+M 光标移动至括号内开始或结束的位置Ctrl+T 词互换Ctrl+U 软撤销Ctrl+P 查找当前项目中的文件和快速搜索;输入 @ 查找文件主标题/函数;或者输入 : 跳转到文件某行;Ctrl+R 快速列出/跳转到某个函数Ctrl+K Backspace 从光标处删除至行首Ctrl+K 阅读全文
posted @ 2013-02-22 22:02 草珊瑚 阅读(7629) 评论(0) 推荐(0) 编辑
摘要:两个为一组,数组循环输出var array = [1,2,3,4,5,6,7];var output_array = [];for(var i=0, l=array.length; i<l; i=i+2){ var temp_array = []; temp_array.push(array[i]); if(i+1 < l){ temp_array.push(array[i+1]) } output_array.push(temp_array);}console.log(output_array);专门写样式,和专门写JS的协作,一个只加class,... 阅读全文
posted @ 2013-02-21 00:01 草珊瑚 阅读(190) 评论(0) 推荐(0) 编辑
摘要:主页面 main.html ,被包含页面 iframe.html。如果main.html和iframe.html都在同一服务器上,表示你可以在main.html里面用js修改iframe.html里面的内容。也可以反过来修改。无非是,$("iframe的id").contents()如果你想,让iframe的高度,随着iframe引用网页内容的高度而定。$("iframe的id").height($("iframe的id").contents().find('body').height());注意,iframe.htm 阅读全文
posted @ 2013-02-19 19:08 草珊瑚 阅读(2754) 评论(0) 推荐(0) 编辑
摘要:<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>形如a()()()()()的实现</title></head><body><div id="I_am_div">jQuery的$("#I_am_div").width("30").height("40");这样的语句表示,后面的width方法和height方法都依赖$(& 阅读全文
posted @ 2013-02-16 19:25 草珊瑚 阅读(244) 评论(0) 推荐(0) 编辑
摘要:<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>js的注意点</title> <script type="text/javascript"> //关于解析和执行 console.log("后声明的变量值:"+later_var); var later_var ="姗姗来迟"; console.log("后面声明的方法:"+later_func 阅读全文
posted @ 2013-01-11 20:40 草珊瑚 阅读(259) 评论(0) 推荐(0) 编辑
摘要:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>setTimeout作用解释1</title><script type="t 阅读全文
posted @ 2013-01-05 12:21 草珊瑚 阅读(558) 评论(0) 推荐(0) 编辑
摘要:JqPlot需要三个参数,1.位置,2.数据,3.配置。 重点是3.配置。 配置大概分为title(标题),axes(xy轴),series(数据的连续图),dataRenderer外部数据加载方式,highlighter鼠标靠近,数据显示方式,cursor鼠标样式变化,以及显示当前数值。 axes轴里面有轴名字label;轴名字的渲染引擎labelRenderer,以及轴名字相关样式(大小fontSize,字体种类fontFamily,颜色等等);轴刻度值tickOptions(字体大小fontSize,旋转角度angle,字体种类fontFamily);轴的渲染引擎rendere... 阅读全文
posted @ 2012-12-03 09:47 草珊瑚 阅读(16404) 评论(1) 推荐(0) 编辑
摘要:1.基本对象Array,arrBoolean,boolData,dateNumber,numString,strRegExp,regFunctions,没有后缀名Event,eventObject,obj函数的参数,Arguments,arg尽量能表示什么类型就有什么类型后缀,一个是Button的引用,后缀就是btn 2.声明一个对象或函数的时候,注释它的调用堆栈。3.声明函数时,注释(1)函数作用(2)函数参数类型和作用------------------CSS部分1.网页布局模块要注释。/*---GLOBAL---*/ /*--Structure--*/ /*--Typographic.. 阅读全文
posted @ 2012-11-24 08:14 草珊瑚 阅读(296) 评论(0) 推荐(0) 编辑
摘要:JavaScript语法和水一样灵动。抛开该死的执行效率,可维护性,可阅读性,让JavaScript语法如同口语一样随意。---------------------表达式语法有四种表达式,前序,中序,后序,正则。正常的JS采用中序表达式,即a+b。如果是前序,+ a b;后序,a b +;正则,呃,正则不是用来求值,是用来筛选,那么筛选能否求值?先保留。如果把+符号当作sum()函数,a+b就是sum(a,b)。这也是前序表达式。也就是说,函数调用,就是前序表达式。前序表达式优点,sum(1,2,3,4,5.....),如果换做中序1 + 2 + 3 + 4 + 5 ......你要敲n个+。 阅读全文
posted @ 2012-09-18 17:04 草珊瑚 阅读(279) 评论(0) 推荐(0) 编辑
摘要:链式调用接下来是一个柯里化的版本 后序语法之函数参数和函数的位置调换 阅读全文
posted @ 2012-08-28 00:19 草珊瑚 阅读(1072) 评论(0) 推荐(0) 编辑
摘要:两个节点之间可能存在哪些关系?父子节点,兄弟节点,后代节点,祖先节点。通常子节点在childNodes属性里,以及attributes属性里。 通常情况是,文本节点没有子节点。document节点没有父节点。如何在节点之间任意移动?要想移动,必先找到该节点。 首先查找元素节点有两种方式,一种是getElementById,另一种是getElementsByName。第一种就直接返回某个节点,第二种返回的是节点列表。 这两种查找方式很大程度上忽略了document结构。<!DOCTYPEhtml><html><head><title>Hacking 阅读全文
posted @ 2012-07-08 16:46 草珊瑚 阅读(940) 评论(0) 推荐(0) 编辑
摘要:首先new Date("2011-12-31");输出的是 Date {Fri Dec 30 2011 18:00:00 GMT-0600 (CST)}这可能与你的操作系统时区以及浏览器有关。new Date("2011-12-31").toString();输出的是"Fri Dec 30 2011 18:00:00 GMT-0600 (CST)"那么,有没有正常点的输出时间呢?new Date("2011-12-31").toUTCString();输出的是"Sat, 31 Dec 2011 00:00 阅读全文
posted @ 2012-07-06 12:59 草珊瑚 阅读(2231) 评论(0) 推荐(0) 编辑
摘要:数据冗余,用空间换取空间。最常见的就是,关系型数据库设计,故意加其它table出现过的字段,然后查询某些数据就不用跨表查询,这样查询效率较高,这是优点。优点之后是缺点,缺点就是,修改数据,要跨表修改。那么,逻辑冗余呢?我遇到的情况之一就是,js自身的bug了,就是浮点数运算,偶尔会算着算着,突然冒出个结果是.0000000000之类。(这个呢,本身就是语言错误,那么我们要不要进入这个语言的源代码,来改写我们的js代码。可以,但代价高。而且,语言自己也会升级,当发现这是个bug,下个版本大多数情况下会修复。于是你以前写的代码很可能被废弃了。)于是,在js浮点数计算里面,基本用toFixed(n) 阅读全文
posted @ 2012-07-02 19:11 草珊瑚 阅读(620) 评论(0) 推荐(0) 编辑
摘要:<script>function arrayToJson(o) {var r = [];if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";if (typeo 阅读全文
posted @ 2012-06-27 14:00 草珊瑚 阅读(3615) 评论(1) 推荐(0) 编辑
摘要:首先的先是,css样式了.ui-autocomplete { padding: 0; list-style: none; background-color: #fff; width: 218px; border: 1px solid #B0BECA; max-height: 350px; overflow-y: scroll;}.ui-autocomplete .ui-menu-item a { border-top: 1px solid #B0BECA; display: block; padding: 4px 6px; color: #353D44; cursor: pointer;}.u 阅读全文
posted @ 2012-06-20 19:36 草珊瑚 阅读(1240) 评论(0) 推荐(0) 编辑
摘要:全局变量是魔鬼。因为,你不小心,在代码的某一处修改了全局变量, 会导致依赖全局变量的其它模块出错。而且出错原因难调试,难找到。再者就是,网页运行肯定用到window对象,浏览器引擎又要遍历一次window的属性,性能下降。那么,如何避免方法一:只创建一个全局变量。MYAPP.stooge={"first-name":"Joe","last-name":"Howard"};MYAPP.flight={airline:"Oceanic",number:815,departure:{IATA:&quo 阅读全文
posted @ 2012-06-09 23:03 草珊瑚 阅读(1488) 评论(0) 推荐(0) 编辑
摘要:第4章 函数4.12模块就是封装么。 4.13级联就是 return this返回自己么。4.14就是柯里化函数么。4.15那个记忆么,就有点看不懂了。貌似是递归算法优化,其实是递归算法优化。体现临时变量的好处。 阅读全文
posted @ 2012-05-20 20:50 草珊瑚 阅读(166) 评论(0) 推荐(0) 编辑
摘要:何谓完整性编程,是指照这个逻辑模式写,写出的代码逻辑性完整,没有或很少不可预测的bug出现,就算出现了bug,也知道是哪个逻辑环节出现bug。MVVM双向绑定的,它的编程模式就是完整性编程的一种。我们先不讨论这。我们从很原始的jQuery操作DOM开始。实例1.http://knockoutjs.com/examples/cartEditor.html这个案例用jQuery思路怎么写?首先承认MVVM思路的确代码减少很多。但我们暂时不用它。首先Product依赖于Category,price和Quantity和Subtotal依赖于Product。我 们不必整个思路出来后,才开始敲代码,因为很 阅读全文
posted @ 2012-05-20 20:43 草珊瑚 阅读(297) 评论(0) 推荐(0) 编辑