每周总结③

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()方法:

var result = $("div").find(".rain");
alert(result.html() ) ;
结果:测试1
②如果使用filter()方法:
var result = $("div").filter(".rain");
alert(result .html() );
结果:<p>测试2</p>
find()会在div元素内寻找class为rain 的元素,是对它的子集操作
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取代)

类型: FunctionObject data, String textStatus, jqXHR jqXHR )
请求成功后的回调函数。这个函数传递3个参数:从服务器返回的数据,并根据dataType参数进行处理后的数据,一个描述状态的字符串;还有 jqXHR(在jQuery 1.4.x前为XMLHttpRequest) 对象 。在jQuery 

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

原文地址:https://www.cnblogs.com/cndotabestdota/p/5662057.html