AngularJS执行流程详解(转载)

本文详细介绍AngularJS从页面加载到渲染完成的过程,包括启动、初始化、编译、链接及运行阶段。AngularJS通过查找ng-app指令来初始化injector等必要组件,并编译DOM树中的指令,最终形成实时视图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要: 本文详细介绍了从页面开始加载到页面渲染完毕过程中,AngularJS执行了哪些操作。

一、启动阶段

大家应该都知道,当浏览器加载一个HTML页面时,它会将HMTL页面先解析成DOM树,然后逐个加载DOM树中的每一个元素节点。我们可以把AngularJS当做一个类似jQuery的js库,我们通过

二、初始化

Angular开始启动后,它会查找ng-app指令,然后初始化一系列必要的组件(即injectorcompile服务以及$rootScope),接着重新开始解析DOM树。

三、编译、链接

compileDOMDOMDOMpriority使injector服务查找和收集指令的compile函数并执行它。
每个节点的编译方法运行之后,$compile服务就会调用链接函数。这个链接函数为绑定了封闭作用域的指令设置监控。这一行为会创建实时视图。
最后,在$compile服务完成后,AngularJS运行时就准备好了。

四、运行阶段

Angular提供了自己的事件循环。指令自身会注册事件监听器,因此当事件被触发时,指令函数就会运行在AngularJS的digestdigest循环会等待watchwatch函数,然后再次查看$watch列表以确保没有模型被改变。
一旦$digest循环稳定下来,并且检测到没有潜在的变化了,执行过程就会离开Angular上下文并且通常会回到浏览器中,DOM将会被渲染到这里。
    将以上过程的关键步骤绘制成一张图,如下:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值