优化小程序中频繁下拉刷新导致的定位获取失败问题
getLocation() {return new Promise((resolve, reject) => {let that =thiswx.getLocation({type: "gcj02",isHighAccuracy: "true",success: (res) => {console.log(res)console.log(res.longitude, 'getLocation获取当前经纬度')console.log(res.latitude, 'getLocation获取当前经纬度')uni.request({url: this.globalData.URL + "subway/getSubway",method: 'POST',data: {version: '251',client: 'wxmp',latitude: res.latitude + 0.001276,longitude: res.longitude + 0.006256},success: (res) => {console.log(res, '地铁站计算距离')this.globalData.fujin_sub = res.data.data.result.geo_subwaythis.globalData.jwd = res.data.data.result.locationuni.setStorageSync('getCity', res.data.data.result.addressComponent);if (res.data.data.result.addressComponent.cityId == '0') {uni.setStorageSync('localcityId', 9999);} else {uni.setStorageSync('localcityId', res.data.data.result.addressComponent.cityId);}uni.setStorageSync('localcityNm', res.data.data.result.geo_subway);uni.setStorageSync('City', res.data.data.result.location);resolve(res.data.data.result.location)}})},fail: () => {reject('getLocation failed')}});})},
这段代码中的 getLocation() 函数包含了一个异步操作,即调用微信小程序的 wx.getLocation() 方法获取当前位置信息,并在成功后发送网络请求。由于这个过程是异步的,如果频繁调用 getLocation() 函数,可能会导致性能问题和用户体验问题。
为了优化这个问题,可以考虑以下几点:
缓存位置信息:如果你只需要获取当前位置信息一次,并且不需要实时更新,可以将获取到的位置信息缓存起来,避免重复调用
wx.getLocation() 方法。例如,在 App.vue 中定义一个变量来存储位置信息:
export default {globalData:{jwd: null},methods: {async getLocation() {if (this.globalData.jwd) {// 如果已经获取过位置信息,则直接返回缓存的结果return this.globalData.jwd} else {// 否则调用 wx.getLocation() 方法获取位置信息,并缓存结果const res = await new Promise((resolve, reject) => {wx.getLocation({type: "gcj02",isHighAccuracy: "true",success: (res) => {resolve(res)},fail: (err) => {reject(err)}})})this.globalData.jwd = res.data.data.result.locationreturn this.globalData.jwd}}}
}
在组件内使用
let app = getApp();//引入app组件实例
vat City = app.globalData.jwd//拿到app中定位获取的当前位置经纬度
优化小程序中频繁下拉刷新导致的定位获取失败问题相关推荐
- 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现
小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...
- 小程序中scroll-view的下拉刷新和小程序页面的下拉刷新开启方法
scroll-view的下拉刷新 video.wxml中 <scroll-view class="videoScroll" scroll-y="true" ...
- 微信小程序 - 手写下拉刷新效果
问题 最近在仿写腾讯新闻小程序,在首页中分别有三个板块,它们是在一个页面中通过滑动tab的效果来进行切换.所以我用swiper + scroll-view来模仿这样的效果,但是在后面做下拉刷新的时候, ...
- 微信小程序实战篇-下拉刷新与加载更多
下拉刷新 实现下拉刷新目前能想到的有两种方式 调用系统的API,系统有提供下拉刷新的API接口 下拉刷新API.png 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一 ...
- 微信小程序页面事件 - 下拉刷新与上拉触底
一.下拉刷新 1.概念:下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为. 2. 启用下拉刷新 启用下拉刷新有两种方式: ①全局开启下拉刷新 在 app.j ...
- 【微信小程序】实现下拉刷新和上拉触底加载更多数据的页面事件
1.下拉刷新事件 1. 什么是下拉刷新 下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为 2. 启用下拉刷新 启用下拉刷新有两种方式: ① 全局开启下拉刷新 ...
- 微信小程序订单页面下拉刷新上拉分页加载
微信小程序开发交流qq群 581478349 承接微信小程序开发.扫码加微信. 正文: 效果图: 代码: json代码: {"enablePullDownRefresh" ...
- mpvue 小程序如何开启下拉刷新,上拉加载?
https://developers.weixin.qq.com/miniprogram/dev/api/pulldown.html#onpulldownrefresh 小程序API 微信小程序之下拉 ...
- 微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开发者...
知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...
最新文章
- 201803考试批次2C 程序设计语言,201803考试批次2可视化程序设计(VB)D卷
- 胖子哥的大数据之路(7)- 传统企业切入核心or外围
- python中输入提示_Python-Tkinter Text输入内容在界面显示的实例
- int *ptr=(int *)(a+1)
- (2)ZYNQ FPGA加载比特流(FPGA不积跬步101)
- 设置域用户登录主目录
- PullToRefreshListView相关
- Python 多线程7-线程通信
- 京东联盟开发(10)——轮询获取数据
- 关于SQL中Between语句查询日期的问题
- (一)appium-desktop定位元素原理
- Springboot配置log4j2配置文件和log4j2.xml详解
- cad字体安装_拿了CAD字体不知道怎么装?看过来
- windows10下破解开机密码
- 《出版专业基础(初级)》2020版学习笔记2~8章
- 【论文阅读】强化学习-Transfer and Multitask RL专题8篇
- 微信网站域名如何做防封和防屏蔽技术
- GoJS学习-节点渐变背景色
- 周训练计划之(新手健身:胸部+肱三、背部+肱二、肩、臀腿)
- wms仓库管理系统带来的效益