开发者社区
社区提问意见反馈
开发者钉组织
扫描二维码
加入支付宝开发者钉组织
native 渲染
性能与优化
小程序全局配置
小程序页面
axml
sjs 语法参考
事件系统
自定义组件
基础能力
基础库
基础库更新日志
开发 > 框架 > 性能与优化 > 小程序运行机制
贡献者
收藏
订阅更新
我的文档
设置

小程序无需安装,用户第一次使用小程序时,支付宝客户端会从服务器下载小程序的资源,下载后的小程序资源会缓存在支付宝的客户端一段时间。当用户再次打开已经缓存资源的小程序时,会跳过下载过程,能够更快地打开小程序。

  • 冷启动:当用户打开未启动过,或者是已经销毁的小程序时,称为冷启动。此时小程序会执行初始化,初始化完成后,会触发 onlaunch 回调函数。
  • 热启动:当用户打开已经关闭但仍处于后台运行的小程序时,称为热启动。在这种情况下,小程序并不会被销毁后重启,而仅是从后台切换到前台,此时,onshow 函数会触发,onlaunch 回调函数不会被触发。
  • 前台运行: 当用户首次打开小程序时候,小程序会处于前台运行状态。
  • 后台运行: 用户点击右上角关闭按钮关闭小程序,或者按下设备 home 键离开支付宝客户端时,小程序并不会直接销毁,而是进入后台运行状态。
  • 从后台运行切换为前台运行: 当未被系统销毁的小程序再度被打开或者激活时,会从后台运行切换为前台运行。

可在 app.js 中注册前台 / 后台切换的回调函数。当小程序从后台进入前台显示时会触发 onshow,当小程序从前台到后台时会触发 onhide

开启本地缓存数据,进行存储、获取和删除等控制。 单个小程序的缓存总上限为 10 mb。 同步方法会阻塞当前任务,直到同步方法处理返回。异步方法不会阻塞当前任务。

操作同步异步描述存储数据存储在本地缓存中指定的 key 中的接口,会覆盖掉原来该 key 对应的数据。读取获取缓存数据的接口。清除清除本地数据缓存的接口。删除删除缓存数据的接口。获取相关信息获取当前 storage 的相关信息的接口。"}" id="89fb7e35">
操作同步异步描述
存储my.setstoragesyncmy.setstorage数据存储在本地缓存中指定的 key 中的接口,会覆盖掉原来该 key 对应的数据。
读取my.getstoragesyncmy.getstorage获取缓存数据的接口。
清除my.clearstoragesyncmy.clearstorage清除本地数据缓存的接口。
删除my.removestoragesyncmy.removestorage删除缓存数据的接口。
获取相关信息my.getstorageinfosyncmy.getstorageinfo获取当前 storage 的相关信息的接口。

用户点击右上角关闭按钮关闭小程序时,小程序仅是进入后台运行,不会被销毁。只有当小程序进入后台运行状态一定时间,或者占用系统资源过高时,才会被真正销毁。

q:小程序如何使用 cookie?

a:小程序中不建议使用 cookie,小程序针对服务端回设的 cookie 不会禁用掉,会设置到小程序进程中,下次小程序进行请求,会自动将已有的 cookie 带入到服务端请求中。前端获取不到 cookie,也不会对 cookie 做任何操作。小程序建议使用 缓存

q:使用了缓存 api 后,小程序的缓存什么时候会被清掉?

a:使用了缓存 api 必须使用清除 api,否则缓存不会被清除掉。

q:小程序启动报错 error: eacces: permission denied, mkdir /users/xiaoqiang/tuhu/gitlab/ali_ app/ali_app/dist/.tea

a:权限问题,用超级用户来执行。在 npm install 指令前加 sudo 变为: sudo npm install。

q:打开小程序报错“系统异常,暂时无法启动,请稍后再试”

a:支付宝客户端版本过低,不支持某些 api 或者组件,会报这样的错误。建议做 兼容 处理。

q:小程序中存入的缓存数据为什么多了一对双引号?

a:告知在调用存入 api 时使用了 json.stringify 导致。

凯发k8官方网娱乐官方 copyright © 2022 支付宝(杭州)信息技术有限公司  | icp证浙b2-20160559
该文档对你是否有帮助?
当前页面目录
网站地图