摘要: 在Backbone中,views并不含有markup,它们通常会用JS templating(例如:Mustache, jQuery-tmpl).一个view的render()方法可以绑定到model's change事件上,这样就可以达到不用刷新整个page,只用刷新部分就可以了。创新一个新的ViewView Code var PhotoSearch=Backbone.View.extend({ el:$('#results'), render:function(event){ var compiled_template=_.template($('#resu 阅读全文
posted @ 2012-09-08 09:23 moonreplace 阅读(646) 评论(0) 推荐(0) 编辑
摘要: Writing Maintainable code有人愿意修bug吗?这不是废话吗?(反正我不愿意修),bug总是不可避免的,我们会花大量的时间来修bug,下面的时间总是我们不可避免的:搞清楚是什么问题理解code,然后再去尝试解决问题如果在一个大的公司或者是一个大的项目中,我们花在第一项的时间会很多。所以我们在写code的时候需要遵守一些规则:可读性好保持一致性可预见性好有良好的文档Minimizing GlobalsJS是用functions来管理scope的。如果一个变量声明在一个function内,那么它就是一个本地变量,在外部是不可用的。那么global的变量是在任何function 阅读全文
posted @ 2012-09-07 18:08 moonreplace 阅读(193) 评论(0) 推荐(0) 编辑
摘要: JavaScript基础知识1.面向对象,Javascript是天生的面向对象的语言,它和我们传统意义上的理解的面向对象语言不一样,其实,我们所接触到传统面向对象语言(C#, Java)更应该称之为面向类的语言。2.五种原生的数据类型: number, string, boolean, null, undefined.而前三种都有相应的对象来表示。所以number, string, boolean可以很方便的转化成相应的对象。3. 在JS中最重要的Function也是对象。4.有两种类型的objects,我们必须谨记。Native:ECMAScript标准所定义的。 Host: host en 阅读全文
posted @ 2012-09-07 10:46 moonreplace 阅读(167) 评论(0) 推荐(0) 编辑
摘要: Backbone中的model实际上包含了程序所要用到的一些交互数据,即给表现层提供数据,也为了从后台得到数据。例如我们可以用一个model来表示photo object,它需要包含一些属性,像tags, titles和location,看代码:var Photo=Backbone.Model.extend({ defaults:{ src:'placeholder.jpg', title:'an image placeholder', coordinates:[0,0] }, initialize:function(){ ... 阅读全文
posted @ 2012-09-06 21:54 moonreplace 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 如果我就想调试一个JS功能,就想实验一个css函数,就想做一个小例子,我不用从<!DOCTYPE>开始写吧,如果你以前这么做了那是你不知道有这个网站:初识:我想这个够清晰明了的了吧,你可以在html中输入你想要的html代码,如果你想调试css, js可以在相应的框中输入你想要的东西。惊艳:我想要用到某个库怎么办,我还需要去下,然后把它们放到本地吗?或者是去找google CDN, jquery cdn....点击Add Libiray有你想要的吗?贤惠:如果我想要把我写的这段代码分享出去怎么办你还在等什么,试一下呗? 阅读全文
posted @ 2012-09-05 16:50 moonreplace 阅读(653) 评论(0) 推荐(0) 编辑
摘要: 问题描述:当我们提到做浏览器兼容时(主要是IE和现代浏览器),可能你的脑海中首先想到的是用hack来兼容各个浏览器,但是请注意尽量不要用行内的hack,如果你用了,不知道你有没有想到过,当你的css有几千行时,而你为了找寻一个IE6 bug时,你会多么的痛苦,所以要合理使用hack.解决方案:1. 利用IE提供给我们的条件判断语句来区分IE和其他的浏览器,以及他自身的各个版本,请看如下代码:<link rel="stylesheet" href="all.css" /><!--[if gt IE 7]> IE7以上版本可识别 &l 阅读全文
posted @ 2012-09-05 16:20 moonreplace 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 问题描述:我们发现在IE6下当鼠标mouseover一个元素时,会发现抖一下,即突然消失又突然出现,而在别的browser下是好的。那我们首先应该想当的是检查当前元素是不是应用了背景图片,如果用到了,那么就应该考虑如下:很有可能是因为IE6不缓存背景图片所导致的bug.例如: button{background:url(buy.jpg);}解决方案:我们可以在页面中加入如下script来解决这个问题:document.execCommand("BackgroundImageCache",false,true);如上代码告诉浏览器,如果本地存在背景图片的时候,就不要麻烦服务器 阅读全文
posted @ 2012-09-05 14:47 moonreplace 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 在看大侠们写的JS code中一直会发现有!!(condation)中,一向以来比较迷惑,不知道为什么这样写。因为双非(!!)之后,和以前所得到的值并没有区别,那我们为什么要多些一举,做这件事情呢?谈到这个问题,我们首先应该从根上说起,因为JS是一门弱类型语言,所以在一些情况下,我们得到的值并不一定是boolean值,虽然在大数情况下,这是正确的,但是如果我们在一些严格的场景下我们有可能会得到错误的结果,如下例:var isFoo=function(){ return true&&"result";}console.log(isFoo());// 结果将是& 阅读全文
posted @ 2012-08-09 11:19 moonreplace 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 如何让块元素能够像行元素一样的显示,我相信这是前端人员经常碰到的问题,如我们的流模式布局,就是以此为基础,Float我们首先应该搞清楚一件事,那就是对于浮动元素来讲,为什么会有浮动这种方式。最初的概念是为了text-wrapping。创意的来源是让一个block元素例如一张图片,把它设为居左或者是居右,同时让文字环绕它。尽管我们把float非常多的用在别处,尽管它是一种非常有效的方式来显示整个document的所有element.但是这也是一种对原先动机的扩展应用。不过对于这些扩展应用,我们应当采取一些预防措施,来确保我们的页面将会显示正常的显示。主要的显示问题是,当我们浮动一个元素时,它的父 阅读全文
posted @ 2012-07-20 18:09 moonreplace 阅读(685) 评论(0) 推荐(0) 编辑
摘要: EMAScript5.1规范说明书中定义了调用内置type(Object, Function, String...)构造函数可以就像调用一般函数一样.这就意味着你不仅可以用new Array(1,2),你也可以用Array(1,2)来生成一个数组, 这两种用法有什么区别呢:当Array像普通函数一样用时与当成构造函数调用它们返回的结果是相同的,这就意味着Array(...)和调用new Array(...)是相同的。–15.4.1 The Array Constructor Called as a Function当调用String(),Object()时,它们所完成的功能是进行类型转换:va 阅读全文
posted @ 2012-06-27 21:41 moonreplace 阅读(942) 评论(0) 推荐(0) 编辑