前端页面javascript生命周期

我们通常定义的客户端生命周期起始于浏览器开始装载某个请求的特定数据,结束于浏览器发起一个新的请求(通常意味着页面的跳转或刷新)。客户端的javascript则作用于这个完整的生命周期过程中。

如果进一步细分,我们可以将客户端生命周期划分为从页面数据被装载页面数据装载完毕初始化阶段以及页面数据装载完毕一直到新的请求被发起之前的运行阶段。在前一个阶段里,javascript代码被浏览器解析,运行环境被初始化,函数和闭包被建立,而那些可以被立即执行的指令被执行并实时地得到结果。在后一阶段里,完成初始化的程序环境进入一个缺省的等待消息的循环,捕获用户操作引发的事件并作出正确响应,这种模式同经典的事件驱动模型非常接近。在这一阶段里,javascrip代码真正扮演一个界面交互行为处理者的角色。

很显然,被臃肿哦页面修饰的javascrip代码通常在初始化阶段被执行完毕,而负责用户交互的javascript几乎总是要在运行阶段被触发和执行。区分这两者的作用和执行规律,有助于分解问题,优化我们的系统设计。

javascript的生命周期      javascript的生命周期

两者比较,看起来略显繁琐的第二个示例是一种更加安全的方式,在这种方式中,指令不会对装载期的文档内容产生影响,脚本指令被注册到body的onload事件中执行,这样确保了在执行前所有的文档元素都已经正确初始化完毕。

假如出现某种意外导致程序终止,第一个示例可能因此而导致文档数据不能加载完全,而后者则不会有这样的风险。

一个比较好的习惯是把除声明之外的所有脚本指令都放到运行阶段来执行,这样避免了因为初始化期间的DOM元素加载失败或者低级的次序问题而导致脚本失效。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值