浏览器显示页面工作流程+Anjular页面UI闪烁原因

目前我已经从事前端工作5个月左右的时间,今天第一次尝试写博客,内容大多是在学习过程中查到的知识和个人理解的结合,如果有错误,欢迎指出,望同发展、共富裕吐舌头~~

浏览器显示页面主要分为三个阶段,分别为:加载、解析、渲染,具体工作内容如下:

加载:引用外部文件,把其放到合适位置,页面自上而下的加载,加载过程中伴随着解析、渲染,解析完    一 部分就展示一部分的内容。

解析:主要进行三部分工作,分别为:

   1.将HTML解析成DOM树,构建过程是深度遍历方式。

   2.将CSS解析成CSS规则树

   3.操作JS脚本,通过DOM API和CSS API来操作DOM树和CSS规则树

渲染:就是浏览器通过DOM树和CSS规则树来构造Rendering树,最终变成人类可以看到的图像。


Angular页面,浏览器显示页面工作流程:

1、浏览器载入HTML,然后把它解析成DOM。

2、浏览器载入angular.js脚本。

3、AngularJS等到DOMContentLoaded事件触发【需要在页面完全加载完成后触发】。

4、AngularJS寻找ng-app指令,这个指令指示了应用的边界。

5、使用ng-app中指定的模块来配置注入器($injector)。【$injector是一个IOC容器(有且只有一个),

包含很多服务

6、注入器($injector)是用来创建“编译服务($compile service)”和“根作用域($rootScope)”的。

每个模块有一个$rootScope,以服务的形式加入到$injector

7、编译服务($compile service)是用来编译DOM并把它链接到根作用域($rootScope)的。

8、ng-init指令将“World”赋给作用域里的name这个变量。

9、通过{{name}}的替换,整个表达式变成了“Hello World”。


所以Angular页面会出现UI闪烁的问题,是因为angular在等待Rendering树渲染过程中,等待

DOMContentLoaded事件的触发,所以会闪烁,解决办法有:

1.加个ng-cloak,并且在css内加样式即可,

2.直接写css的文件

3.用ng-bind可以解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值