Code前端首页关于Code前端联系我们

小程序开发策略:用户信息流程获取授权、渲染性能优化

terry 2年前 (2023-09-23) 阅读数 148 #移动小程序

用户信息流程获取授权

小程序开发攻略:授权获取用户信息流程、渲染性能优化

  • session_key 有有效期,有效期不通知开发者。他们所知道的是,用户使用该小部件的次数越多,session_key 的有效时间就越长。
  • 调用wx.login时,会直接更新session_key,导致旧的session_key失效。
  • 小程序中,首先调用wx.checkSession检查登录状态,确保过期的session_key不会被更新,然后调用wx.login检索。代码。用户然后授权小程序获取用户信息。小程序检索加密的用户数据并将加密的数据和代码传递给后端服务。后端通过代码获取session_key,解密数据,并将解密后的用户信息返回给小程序

面试题:如果先对用户信息进行授权,然后再登录,会发生什么情况?

小程序开发攻略:授权获取用户信息流程、渲染性能优化 小程序开发攻略:授权获取用户信息流程、渲染性能优化

  • 当用户授权时,开放平台使用旧的session_key来加密用户的信息。再次调用wx.login登录会刷新session_key。目前后端服务从开放平台获取新的session_key,但无法解密旧session_key加密的数据。获取用户数据失败
  • 授权用户数据前调用wx。 .checkSession 怎么样? wx.checkSession 检查登录状态,并确保wx.login 不会刷新session_key,以便后端服务能够正确解密数据。但问题就在这里。如果小程序长时间没有导致session_key过期,wx.login肯定会重新生成session_key,这样又会无法解密用户信息。

性能优化

我们知道view部分是在webview中实现的,所以前端box中的大部分优化方法都适用。

我们知道view部分是在webview中实现的,所以前端box中的大部分优化方法都适用。

我们知道view部分是在webview中实现的,所以前端box中的大部分优化方法都适用。

加载优化

小程序开发攻略:授权获取用户信息流程、渲染性能优化

代码包的大小是最直接影响小程序加载和运行速度的因素。代码包越大,不仅下载速度会变长,而且插入业务代码的时间也会变长。所以最好的优化方法就是减小代码包的大小。 小程序开发攻略:授权获取用户信息流程、渲染性能优化

呈现三个级别的小程序加载。

优化模式

  • 代码压缩。
  • 及时清理无用的代码和资源文件。
  • 减少代码包中图片等资源文件的大小和数量。
  • 加载分包。

优化首屏加载体验的建议

  • 预请求:异步数据请求不需要等待页面渲染完成。
  • 使用缓存:使用存储API缓存异步请求数据。在第二次运行期间,缓存的数据首先用于渲染页面,然后在后台更新。
  • 避免白屏:首先显示骨架页面和基本内容。
  • 及时反馈:对需要用户等待的交互操作提供即时反馈,防止用户认为小组件无响应。

使用子包加载优化

小程序开发攻略:授权获取用户信息流程、渲染性能优化

构建小程序分包商项目时,build会产生一个或多个功能子包。每个分包的小程序都必须包含一个主包,这个主包。这意味着所有子包都安装了默认的主页/标签页,并且需要一些公共JS资源/脚本,并且子包根据开发人员配置进行拆分。

小程序运行时,默认下载主包并启动主包中的页面。如果用户需要打开子包中的页面,客户端会下载相应的子包,下载完成后显示。

优点:

  • 对于开发者来说,可以让小程序拥有更大的代码量,承载更多的功能和服务
  • 对于用户来说,可以更快的打开小程序,同时使用更多的功能,而无需影响启动速度

限制:

  • 整个程序所有子包大小不超过8M
  • 单个子包/主包大小不得超过2M

原生加载配置分包?对于打包,子包配置路径之外的目录将被打包到应用程序(主包)中。

  • 应用程序(主包)也可以有自己的页面(这是最外层的页面字段
  • 不能是子包的根目录 TAB页面位于另一个子包中的另一个子目录的主页上
  • 必须在应用程序中(主包)
  • 参考原理

    • packageA 无法请求包 B 的 JS 文件,但可以请求其包中的应用程序和 JS 文件
    • packageA 无法导入 packageB 的模板,但可以请求其包中的应用程序和模板自己的包
    • packageA不能使用packageB的资源,但可以使用应用程序和自己的包的资源

    即将正式上线正在加载小程序开发攻略:授权获取用户信息流程、渲染性能优化

    外包给独立承包商小程序开发攻略:授权获取用户信息流程、渲染性能优化

    渲染性能优化

    小程序开发攻略:授权获取用户信息流程、渲染性能优化
    • 每次调用setData都是一个进程间通信过程,通信成本与setData中的数据量正相关,
    • setData会导致页面与视图层的内容被更新,这个耗时的操作会在一段时间内阻塞用户交互。
    • setData 最常用于小程序开发,也最容易造成性能问题。

    避免setData使用不当

    • 在方法之间使用数据共享数据,可以增加setData传递的数据量。 。数据应该只包含与页面渲染相关的数据。
    • 使用setData传输大量数据, ** 通信时间与数据、页面更新正相关。延迟可能会导致页面更新成本增加。**仅传递页面上已更改的数据,并使用特殊的 setData 键来执行本地更新。
    • 频繁调用setData会导致短时间内操作延迟、交互延迟、通信阻塞、页面渲染延迟。 **避免不必要的 setData 并组合连续的 setData 调用。
    • 在后台页面实现setData,接管前台页面的渲染资源。 **页面进入后台后调用 setData 将被延迟,直到页面重新显示。
    小程序开发攻略:授权获取用户信息流程、渲染性能优化

    避免误用onPageScroll

    • 仅在必要时监听pageScroll事件。如果不受控制,则不会发货。
    • 避免在onPageScroll中执行复杂的逻辑
    • 避免在onPageScroll中频繁调用setData
    • 避免在滚动判断是否显示时频繁查询节点信息(SelectQuery)。部分场景建议使用橡胶节点布局状态控制(inersectionObserver) )替换

    使用自定义组件

    在需要频繁更新的场景中,自定义组件更新仅在组件内部完成,不受内容复杂度影响在页面的其他部分。

    版权声明

    本文仅代表作者观点,不代表Code前端网立场。
    本文系作者Code前端网发表,如需转载,请注明页面地址。

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    热门