1. 脏数据检查 != 轮询检查更新 2. $digest后批量更新UI 3. 提速 $digest cycle
3.1. 关键点 3.2. 优化$watch 3.3. $apply vs $digest 3.4. 延迟执行
4. 优化ng-repeat 4.1. 限制列表个数 4.2. 使用 track by
5. 使用单次绑定
6. 慎用filter
7. 慎用事件
8. directive
9. 使用Batarang来分析性能
首先,provider
, value
, constant
, service
, factory
他们都是provider!(decorator
小朋友先搬个小板凳坐在边上等会儿,现在还没轮到你出场哈~)
provider是干啥的?
provider可以为应用提供通用的服务,形式可以是常量,也可以是对象。
比如我们在controller里常用的$http
就是AngularJS框架提供的provider~
AngularJS是通过该什么来触发绑定的,怎么触发?下边的三个概念需要知道:
Dirty Checking
的机制,由$digest()触发。Digest
。由$apply()
触发。Scope是AngularJS里的一个很重要的概念,简单的说它就是用来保存AngularJS Model们的对象,是Model们温暖的小家~
那这个小家是什么时候造的呢?
<html ng-app="mainApp">
</html>
废话不多少,直接上代码:
JS部分:
function addEvent(obj, evtType, func, cap) {
cap = cap || false;
if (obj.addEventListener) {
区别总结如下:
directive中执行的$evalAsync
, 会在angular操作DOM之后,浏览器渲染之前执行。
controller中执行的$evalAsync
, 会在angular操作DOM之前执行,一般不这么用。
而使用$timeout
,会在浏览器渲染之后执行。
AngularJS是由Google创建的一种JS框架,使用它可以扩展应用程序中的HTML词汇,从而在web应用程序中使用HTML声明动态内容。
AngularJS可以让你扩展HTML的语法,以便清晰、简洁地表示应用程序中的组件,并允许将标准的HTML作为你的模板语言,AngularJS可以通过双向数据绑定自动从拥有JavaScript对 象(模型)的UI(视图)中同步数据。
Acorn Media Player是一个jQuery插件,它采用HTML5 <video>标签来自定义一个播放器。易于定制和扩展。
直接上代码:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<meta name="website" content="camnpr.com" />
<title>jquery $.each遍历json数组方法</title>
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
很多文章中都有说道:当时ngRoute在路由配置时用$routeProvider,但是当ui-router路由配置时用 $stateProvider 和 $urlRouterProvider。
那么它们有什么不同呢?
1、ngroute是用AngularJS框架的核心部分。
2、ui-router是一个社区库,它是用来提高完善ngroute路由功能的。