码迷,mamicode.com
首页 > 其他好文 > 详细

读书笔记

时间:2016-07-20 19:18:28      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

一、如何设计友好的REST API

1.使用uuid代替id

2.URI参数定义由/users/age/20/60改为/users?minAge=20&&maxAge=60

3.四大method,GET是安全的,HEAD也安全,POST/PUT/DELETE是不安全的

4.让GET的实现不要改变资源状态,因为GET的攻击手段要比针对其他METHOD的多一点

方法 含义 安全 幂等
GET 读取资源列表或指定资源详情
HEAD 获取资源概况
POST 创建新资源
PUT 更新指定资源
DELETE 删除指定资源

 

幂等的意义在于:它可以安全地自动重试刚才的操作,而不用担心破坏业务逻辑

5.分页的参数模式,推荐使用“起始位置offset+条数size”,一般使用GET请求资源,结果返回数组形式,总条数放在响应头中(用HEAD方法去取,可定时刷新)

二、语法糖controller as

推荐写法:

angular.module(‘app‘).controller(‘DemoController‘, function() {
   var vm = this;
   vm.title = ‘angular‘;
   return vm;   
})

三、双向绑定和watchers函数

compileProvider服务可以用来关闭调试信息(调试类:ng-binding、ng-scope、ng-isolate-scope等)

app.config(function($compileProvider) {

//disable debug info

$compileProvider.debugInfoEnabled(false);

})

四、one-time绑定

如果数据是静态数据,则在绑定的时候为了避免$watch产生导致性能下降,选择单次绑定: $watch在第一次实行是必要的,但之后因为不改变数据所以没有必要$watch。

单次表达式在第一次$digest完成后,将不再计算(检测属性的变化),以“::”作为前缀的表达式为one-time绑定

<ul>
    <li ng-repeat="session in sessions">
        <div class="info">
            {{::session.name}}
        </div>
    </li>
</ul>

注意:目前测试one-time不适用于动态数据

五、滚屏加载(针对大数据集显示)

ngInfiniteScroll开源组件实现滚屏加载

六、总是用ng-model作为输出

有ngModel的地方都可以使用ng-change事件

七、用打包代替动态加载

八、angular-hint

定位angular中常见的错误问题

 

读书笔记

标签:

原文地址:http://www.cnblogs.com/echo2016/p/5689281.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!