2019-08-29
1.Object.freeze()
Object.freeze() 方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze() 返回和传入的参数相同的对象。
2.微信小程序节点查询的API - wx.createSelectorQuery()。
Page({
queryMultipleNodes: function(){//声明节点查询的方法
var query = wx.createSelectorQuery()//创建节点查询器 query
query.select('#the-id').boundingClientRect()//这段代码的意思是选择Id=the-id的节点,获取节点位置信息的查询请求
query.selectViewport().scrollOffset()//这段代码的意思是获取页面滑动位置的查询请求
query.exec(function(res){
res[0].top // #the-id节点的上边界坐标
res[1].scrollTop // 显示区域的竖直滚动位置
})
}
})
(1)onload 对应的是加载中,也就是webkit加载页面的方法执行。
(2)onShow 对应的页面显示,并不算是数据填充后的显示,而是“页面框架的加载”
(3)onReady 指的是“页面框架的显示”,而并非页面数据与节点加载渲染完成。
(4)微信小程序之所以这么设计应该是照顾到webkit内核压力的缘故,使得页面整个加载分为多个步骤,异步进行。
结论:
证明他们的执行顺序是:
onLoad >> onShow >> onReady
查询方法: wx.createSelectorQuery(),在页面响应事件中并不能查询到节点信息。
如有查询节点需求可以用延时方法或者操作事件来获取。