美文网首页
2019-08-29

2019-08-29

作者: 姚小瘦 | 来源:发表于2019-08-29 08:39 被阅读0次

    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(),在页面响应事件中并不能查询到节点信息。

    如有查询节点需求可以用延时方法或者操作事件来获取。

    相关文章

      网友评论

          本文标题:2019-08-29

          本文链接:https://www.haomeiwen.com/subject/bsjbectx.html