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中定位获取的当前位置经纬度

优化小程序中频繁下拉刷新导致的定位获取失败问题相关推荐

  1. 提高微信小程序的应用速度的常见方式有哪些? 小程序怎么实现下拉刷新? 简述微信小程序原理? 小程序的发布流程(开发流程)分析下微信小程序的优劣势?小程序授权登录流程? 小程序支付如何实现

    小程序部分常见面试题 提高微信小程序的应用速度的常见方式有哪些? 提高页面加载速度 用户行为预测 减少默认data的大小 组件化方案 分包预下载 小程序与原生App相比优缺点? 优点: 基于微信平台开 ...

  2. 小程序中scroll-view的下拉刷新和小程序页面的下拉刷新开启方法

    scroll-view的下拉刷新 video.wxml中 <scroll-view class="videoScroll" scroll-y="true" ...

  3. 微信小程序 - 手写下拉刷新效果

    问题 最近在仿写腾讯新闻小程序,在首页中分别有三个板块,它们是在一个页面中通过滑动tab的效果来进行切换.所以我用swiper + scroll-view来模仿这样的效果,但是在后面做下拉刷新的时候, ...

  4. 微信小程序实战篇-下拉刷新与加载更多

    下拉刷新 实现下拉刷新目前能想到的有两种方式 调用系统的API,系统有提供下拉刷新的API接口 下拉刷新API.png 监听scroll-view,自定义下拉刷新,还记得scroll-view里面有一 ...

  5. 微信小程序页面事件 - 下拉刷新与上拉触底

    一.下拉刷新 1.概念:下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为. 2. 启用下拉刷新 启用下拉刷新有两种方式: ①全局开启下拉刷新 在 app.j ...

  6. 【微信小程序】实现下拉刷新和上拉触底加载更多数据的页面事件

    1.下拉刷新事件 1. 什么是下拉刷新 下拉刷新是移动端的专有名词,指的是通过手指在屏幕上的下拉滑动操作,从而重新加载页面数据的行为 2. 启用下拉刷新 启用下拉刷新有两种方式: ① 全局开启下拉刷新 ...

  7. 微信小程序订单页面下拉刷新上拉分页加载

    微信小程序开发交流qq群   581478349    承接微信小程序开发.扫码加微信. 正文: 效果图: 代码: json代码: {"enablePullDownRefresh" ...

  8. mpvue 小程序如何开启下拉刷新,上拉加载?

    https://developers.weixin.qq.com/miniprogram/dev/api/pulldown.html#onpulldownrefresh 小程序API 微信小程序之下拉 ...

  9. 微信小程序下拉框插件_微信小程序自定义select下拉选项框组件的实现代码_清玖_前端开发者...

    知识点:组件,animation,获取当前点击元素的索引与内容 微信小程序中没有select下拉选项框,所以只有自定义.自定义的话,可以选择模板的方式,也可以选择组件的方式来创建. 这次我选择了组件, ...

最新文章

  1. 201803考试批次2C 程序设计语言,201803考试批次2可视化程序设计(VB)D卷
  2. 胖子哥的大数据之路(7)- 传统企业切入核心or外围
  3. python中输入提示_Python-Tkinter Text输入内容在界面显示的实例
  4. int *ptr=(int *)(a+1)
  5. (2)ZYNQ FPGA加载比特流(FPGA不积跬步101)
  6. 设置域用户登录主目录
  7. PullToRefreshListView相关
  8. Python 多线程7-线程通信
  9. 京东联盟开发(10)——轮询获取数据
  10. 关于SQL中Between语句查询日期的问题
  11. (一)appium-desktop定位元素原理
  12. Springboot配置log4j2配置文件和log4j2.xml详解
  13. cad字体安装_拿了CAD字体不知道怎么装?看过来
  14. windows10下破解开机密码
  15. 《出版专业基础(初级)》2020版学习笔记2~8章
  16. 【论文阅读】强化学习-Transfer and Multitask RL专题8篇
  17. 微信网站域名如何做防封和防屏蔽技术
  18. GoJS学习-节点渐变背景色
  19. 周训练计划之(新手健身:胸部+肱三、背部+肱二、肩、臀腿)
  20. wms仓库管理系统带来的效益

热门文章

  1. 记:比身高(三个人中最高)
  2. 教徒计划出品:同一端口同时启用PEAP和MAC地址旁路(适用于IPPhone串接PC的网络环境)...
  3. windows系统一键关停系统的脚本
  4. MySQL【六】约束条件
  5. HTTPS-各种加密方式
  6. 【备查】office 2010 安装
  7. golang DES加密解密
  8. 前端练习--奇奇动漫导航条(通过背景图设置)
  9. 那一年读过的技术经典书
  10. 图片中的文字打码,公章打码