7-11
1:backbone路由选择<a href="#xxxx">---锚点会加在url后面
2: SVN的使用 ①update 将SVN服务器最新版本下载到本地 ②commit将本地改动上传到SVN服务器
这是因为,你代码可能不是最新的!比如你的代码是10月1日的下载的版本
10月2日,呆B王更新了其中一个文件,比如是 test.java 上传了svn,10月3日,你也要修改 test.java 这个文件。如果说,你没有更新,直接修改。然后上传了svn。那现在svn上只有你一个人修改的代码,那现在svn上只有你一个人修改的代码。如果你更新了再修改,那等于是在呆B王修改的基础上再修改。那SVN上,你们2个的修改都保留下来了。
3:机房管理结合了模板,模型,集合
4:
MODEL
urlmodel.url()
返回模型资源在服务器上位置的相对 URL 。 如果模型放在其它地方,可通过合理的逻辑重载该方法。 生成 URLs 的默认形式为:"/[collection.url]/[id]", 如果模型不是集合的一部分,你可以通过指定明确的urlRoot覆盖。
由于是委托到 Collection#url 来生成 URL, 所以首先需要确认它是否定义过,或者所有模型共享一个通用根 URL 时,是否存在 urlRoot 属性。 例如,一个 id 为 101 的模型,存储在 url 为 "/documents/7/notes" 的 Backbone.Collection 中, 那么该模型的 URL 为:"/documents/7/notes/101"
urlRootmodel.urlRoot or model.urlRoot()
如果使用的集合外部的模型,通过指定 urlRoot 来设置生成基于模型 id 的 URLs 的默认url 函数。 "[urlRoot]/id"。通常情况下,你不会需要定义这一点。 需要注意的是urlRoot也可以是一个函数。
var Book = Backbone.Model.extend({urlRoot : '/books'}); var solaris = new Book({id: "1083-lem-solaris"}); alert(solaris.url());
idAttributemodel.idAttribute
一个model的唯一标示符,被储存在 id 属性下。如果使用一个不同的唯一的key直接和后端通信。可以设置Model的 idAttribute 到一个从key到 id 的一个透明映射中。
var Meal = Backbone.Model.extend({ idAttribute: "_id" }); var cake = new Meal({ _id: 1, name: "Cake" }); alert("Cake id: " + cake.id);
COLLECTION
urlcollection.url or collection.url()
设置 url 属性(或函数)以指定集合对应的服务器位置。集合内的模型使用 url 构造自身的 URLs。
var Notes = Backbone.Collection.extend({ url: '/notes' }); // Or, something more sophisticated: var Notes = Backbone.Collection.extend({ url: function() { return this.document.url() + '/notes'; } });
5.
syncmodel.sync(method, model, [options])
使用 Backbone.sync 可以将一个模型的状态持续发送到服务器。 可以自定义行为覆盖。
fetchmodel.fetch([options])
通过委托给Backbone.sync从服务器重置模型的状态。返回jqXHR。 如果模型从未填充数据时非常有用, 或者如果你想确保你有最新的服务器状态。 如果服务器的状态不同于当前属性的"change"事件将被触发。 接受 success 和 error回调的选项散列, 这两个回调都可以传递(model, response, options)作为参数。
// 每隔 10 秒从服务器拉取数据以保持频道模型是最新的 setInterval(function() { channel.fetch(); }, 10000);
savemodel.save([attributes], [options])
通过委托给Backbone.sync,保存模型到数据库(或替代持久化层)。 如果验证成功,返回jqXHR,否则为 false。 attributes散列(如set)应包含你想改变的属性 - 不涉及的键不会被修改 - 但是,该资源的一个完整表示将被发送到服务器。 至于set,你可能会传递单独的键和值,而不是一个哈希值。 如果模型有一个validate方法,并且验证失败, 该模型将不会被保存。 如果模型isNew, 保存将采用"create"(HTTP POST), 如果模型在服务器上已经存在, 保存将采用"update"(HTTP PUT)。
相反,如果你只想将改变属性发送到服务器, 调用model.save(attrs, {patch: true})。 你会得到一个HTTP PATCH请求将刚刚传入的属性发送到服务器。
通过新的属性调用save 将立即触发一个"change"事件,一个"request"事件作为Ajax请求开始到服务器, 并且当服务器确认成功修改后立即触发 一个"sync"事件。 如果你想在模型上等待服务器设置新的属性,请传递{wait: true}。
在下面的例子中, 注意我们如何覆盖Backbone.sync的版本,在模型初次保存时接收到"create"请求,第二次接收到 "update" 请求的。
Backbone.sync = function(method, model) { alert(method + ": " + JSON.stringify(model)); model.set('id', 1); }; var book = new Backbone.Model({ title: "The Rough Riders", author: "Theodore Roosevelt" }); book.save(); book.save({author: "Teddy"});
save 支持在选项散列表中传入 success 和 error 回调函数, 回调函数支持传入(model, response, options) 作为参数。 如果服务端验证失败,返回非 200 的 HTTP 响应码,将产生文本或 JSON 的错误内容。
book.save("author", "F.D.R.", {error: function(){ ... }});
destroymodel.destroy([options])
通过委托给Backbone.sync,保存模型到数据库(或替代持久化层)。 通过委托一个HTTP DELETE请求给Backbone.sync破坏服务器上的模型。 返回一个jqXHR对象, 或者如果模型isNew,那么返回false。 选项散列表中接受 success 和 error 回调函数, 回调函数支持传入 (model, response, options) 作为参数。 在模型上触发 "destroy"事件,该事件将会冒泡到任何包含这个模型的集合中, 一个"request"事件作为Ajax请求开始到服务器, 并且当服务器确认模型被删除后立即触发 一个"sync"事件。如果你想在集合中删除这个模型前等待服务器相应,请传递{wait: true}。
book.destroy({success: function(model, response) { ... }});
6. JQXHR:JQuery伪造的XMLHTTPREQUEST对象
7:怎么看传送过来的response对象,从Network中看到的请求,从请求中看到数据
8: jQuery中find和filter的区别
这是jQuery里常用的2个方法。
他们2者功能是完全不同的,而初学者往往会被误导。
现在有一个页面,里面HTML代码为;
<div >
<p class="rain">测试1</p>
</div>
<div class="rain">
<p>测试2</p>
</div>
①如果我们使用find()方法:
alert(result.html() ) ;
alert(result .html() );
filter()则是筛选div的class为rain的元素,是对它自身集合元素筛选
9: jQuery中find和filter的区别
10: self.template({machineList:self.machineList});
11: model①save ②destory
12:机房增改的save().done()
①直接用save()也可以添加机房
②save()成功验证时返回JQXHR
③JQXHR.done()是一个可供选择的success回调选项参数
success(被done取代)
13:$("#xxx").tooltip(); jQuery UI工具提示框 --- segmentfault提问
7-12
1:machineList未定义---解决:引入MachineList①define[]②function($,MachineList,xx,xx)
2:使用template时,利用print()在html进行输出很方便
3:Jquery的fn是原型prototype
$时jQuery的别名,实际调用的是jQuery.fn.init()(init是jquery的构造函数)
4:MachineList方法each无效--解决:cloneTemp方法中的self改成this
5:对密码设置的更新使用settimeout
6:bootstrap源码阅读
①readonly属性
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
background-color: #eee;
opacity: 1;
}
②让内容块居中
.center-block
{ display: block;
margin-left: auto;
margin-right: auto;
}
③
问题:
jquery中用on来绑定事件,经常的写法有
$(document).on('click','.classname',function(){});
$('.classname').on('click',function(){});
上面两种都是给类是classname的元素添加了click事件,那这两个写法有什么区别呢?在效率上哪个更好呢?
回答:
$(document).on是把事件委托到document上,$('className').on是把事件绑定到.className元素上。效率方面,直接绑定在元素上会更为高效,绑定在document上,每次document有点击动作,浏览器都会判断当前点击的对象,如果匹配,再决定要不要执行,多了一个判断的环节。但在目前开发中,JS渲染效率很高,所以此异同基本可以忽略不计。此外,针对$(document).on的触发特点,延伸一下,$("className").on为onclick绑定,只有在页面onload的时候执行一次,当页面刷新后,新加载的具有className的元素便没有事件绑定到上面了,相反$(document).on这种方法会刷新和重新赋予绑定操作,所以一定程度上更为全面。
④使用(function() {}).call(this);包裹代码有什么好处,什么时候应该这样做?
IIFE :immediately-invoked function expression 即使执行方法的一种
答案:https://segmentfault.com/q/1010000002519489