请问有查询到原因吗?我这边也有用户反应小程序请求很慢,查询后台的处理都没到1秒的
在某些机型安卓手机下网络请求很慢- 当前 Bug 的表现(可附上截图) 在某些安卓手机下网络请求很慢,开始还以为是访问量过高服务端响应过慢,结果发现服务端响应基本100-200ms。通过对比,在ios下很快,基本秒开;而部分安卓手机(如小米5X等)打开很慢,正常的时候至少是ios2倍的时间,而经常出现2-3s,甚至5s以上。 开始以为是我们网络请求封装的问题,然后使用同一个api测试,使用没有封装最简单的网络请求测试,问题依然存在。而且测试了几个在线上运营的其他家的小程序,似乎也存在类似问题。 并不是只有一台手机这样,那可以理解为手机问题,但是经常用户也反馈该问题,说明是不少情况会出现这样的问题。不知道啥原因.... 另外我们这个小程序有一个对应的H5网页的前端版本,在H5上,所有机型打开都是秒开。 - 预期表现 网络请求在这些机型速度一样或类似速度。
2019-01-09请问有解决这个问题吗?
input 标签,输入名字的时候 会掉字写了一个 input 标签,用来接收用户名字的输入,但是向后端保存的时候,会产生名字掉字的情况,比如:王大力,存到数据库中就成了:王大,掉了一个字。 wxml 中的代码: [代码]<[代码][代码]input[代码] [代码]class[代码][代码]=[代码][代码]'item-input'[代码] [代码]type[代码][代码]=[代码][代码]'text'[代码] [代码]maxlength[代码][代码]=[代码][代码]'11'[代码] [代码]placeholder[代码][代码]=[代码][代码]"请输入姓名"[代码] [代码]name[代码][代码]=[代码][代码]"name"[代码] [代码]value[代码][代码]=[代码][代码]'{{name}}'[代码] [代码]bindinput[代码][代码]=[代码][代码]'bindNameInput'[代码] [代码]/>[代码][代码]bindinput[代码][代码][代码] 绑定的事件: [代码]bindNameInput: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]var[代码] [代码]value = e.detail.value.replace(/^\s+|\s+$/g, [代码][代码]''[代码][代码]);[代码][代码] [代码][代码]this[代码][代码].setData({[代码][代码] [代码][代码]name: value,[代码][代码] [代码][代码]})[代码][代码] [代码][代码]},[代码]获取名字的时候取得是:this.data.name 一直找不出原因,有没有大佬曾遇到过类似的问题的,求解答。
2018-11-29请问解决了吗?我也碰到这个问题了
关于app实例的问题在真机测试我们小程序的过程中发现一个奇怪的问题,就是登录时将用户 token 存储在 app 实例的 globalData 下,在请求业务接口的时候再取 token 放在请求头里带到后台获取数据,然后有很小的概率获取不到 app 实例下的数据,不但 app 下的数据没有,而且 wx.getStorageSync 方法也获取不到东西。几率大概是五十分之一这样,貌似在网速不稳定的时候出现几率更高,在开发工具没有出现过这种情况。 我本身不是做前台的,小程序代码是个女同事写的,我看了也没发现什么逻辑问题,只是有点乱,以下是按钮事件句柄: [代码]tabSelect: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]var[代码] [代码]that = [代码][代码]this[代码][代码];[代码][代码] [代码][代码]var[代码] [代码]num = e.currentTarget.dataset.tabnum;[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]tabnum: num[代码][代码] [代码][代码]})[代码][代码] [代码][代码]pos = 0;[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]groupList: [],[代码][代码] [代码][代码]searchLoading: [代码][代码]true[代码][代码], [代码][代码]//"上拉加载"的变量,默认true,隐藏 [代码][代码] [代码][代码]searchLoadingComplete: [代码][代码]false[代码] [代码]//“没有数据”的变量,默认false,隐藏 [代码][代码] [代码][代码]})[代码][代码] [代码][代码]loadMore(that);[代码][代码] [代码][代码]}[代码] 然后请求的 loadMore 方法: [代码]var[代码] [代码]loadMore = [代码][代码]function[代码] [代码](that) {[代码][代码] [代码][代码]if[代码] [代码](!that.data.busy) {[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]busy: [代码][代码]true[代码][代码] [代码][代码]})[代码][代码] [代码][代码]wx.request({[代码][代码] [代码][代码]url: util.getUrl() + [代码][代码]'api/v1/groupPurchase/getListByState'[代码][代码],[代码][代码] [代码][代码]method: [代码][代码]'POST'[代码][代码],[代码][代码] [代码][代码]data: {[代码][代码] [代码][代码]state: that.data.tabnum,[代码][代码] [代码][代码]city_code: wx.getStorageSync([代码][代码]'cityCode'[代码][代码]),[代码][代码] [代码][代码]perPageNum: perPageNum,[代码][代码] [代码][代码]pos: pos[代码][代码] [代码][代码]},[代码][代码] [代码][代码]header: {[代码][代码] [代码][代码]'content-type'[代码][代码]: [代码][代码]'application/json'[代码][代码],[代码][代码] [代码][代码]'Authorization'[代码][代码]: app.globalData.tokenStr[代码][代码] [代码][代码]},[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]that.setData({[代码][代码] [代码][代码]busy: [代码][代码]false[代码][代码] [代码][代码]})[代码][代码] [代码][代码]var[代码] [代码]data = res.data;[代码][代码] [代码][代码]if[代码] [代码](data.ret == 0) {[代码][代码] // 请求成功处理[代码] [代码] // ...[代码] [代码] [代码][代码]} [代码][代码]else[代码] [代码]{[代码][代码] [代码][代码]wx.showModal({[代码][代码] [代码][代码]content: data.msg,[代码][代码] [代码][代码]showCancel: [代码][代码]false[代码][代码],[代码][代码] [代码][代码]confirmText: [代码][代码]"确定"[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]},[代码][代码] [代码][代码]complete: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// complete[代码][代码] [代码][代码]wx.stopPullDownRefresh() [代码][代码]//停止下拉刷新[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码]}[代码] 情况是这样,在没有重新加载页面的情况下,分别点击两个绑定了同一个事件 tabSelect 的按钮,第一个按钮请求成功的,传到后台的数据都正常。在相隔数秒后点击第二个按钮,就获取不到 app.globalData.tokenStr 和缓存下的 cityCode 。以下是日志截图: 点击第一个按钮: [图片] 点击第二个按钮: [图片] 相隔的时间不到 10 秒,我不清楚这个问题产生的原因,因为产生这个问题的概率很小,而且无法稳定的重现,我对小程序也不是很熟悉,所以想到社区来请教,有哪位朋友遇到过类似的问题或者有什么解决的方向么?望不吝赐教,谢谢。 还有一点就是这个问题不止出现在这个页面,如果测试的次数够多的话相信在所有用到 token 的页面都会出现。
2018-06-14