微信小程序:防止重复提交产生垃圾数据,频繁点击消耗数据库读写资源

微信小程序:防止重复提交产生垃圾数据,频繁点击消耗数据库读写资源,第1张

例如使用:wx.showToast,wx.showLoading

d出提示框,提示框显示xx秒,提示框显示期间无法再 *** 作

通俗讲,就是d出屏蔽层,防止用户第二次点击

例如使用:hidden 或者 disable 或者 wx:if

点击一次后,立即禁用或隐藏按钮

此方法可能存在的问题:在d出提示框前已经点击了多次

页面js中使用节流函数

目前总结解决方法:同时需要设置模块的函数,函数都可放置在util.js中去。

首先:

一、在util.js中放入如下两组函数

1. 设置点击后多久不能再次 *** 作该

function throttle(fn, gapTime) {

  if (gapTime == null || gapTime == undefined) {

    gapTime = 1500

  }

  let _lastTime = null

  // 返回新的函数

  return function () {

    let _nowTime = + new Date()

    if (_nowTime - _lastTime >gapTime || !_lastTime) {

      fn.apply(this, arguments)  //将this和参数传给原函数

      _lastTime = _nowTime

    }

  }

}

2. 设置加载动画

function showLoading(message) {

  if (wx.showLoading) {    // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理

    wx.showLoading({

      title: message, mask: true

    })

  } else {    // 低版本采用Toast兼容处理并将时间设为20秒以免自动消失

    wx.showToast({

      title: message, icon: 'loading', mask: true, duration: 20000

    })

  }

}

function hideLoading() {

  if (wx.hideLoading) {    // 基础库 1.1.0 微信6.5.6版本开始支持,低版本需做兼容处理

    wx.hideLoading()

  } else {

    wx.hideToast()

  }

}

并且将其导出作为页面使用:

module.exports = {

  throttle: throttle,

  showLoading: showLoading,

  hideLoading: hideLoading,

}

二、将函数引入页面使用

const util = require('../../utils/util.js')

即可。

首先引入微信小程序官方关于HTTPS网络请求问题的 相关说明

如果苹果机型和本地微信开发工具请求都相对正常,唯独安卓部分机型频繁出现请求超时问题,那么可能就是服务器域名证书的信任链不完整或者缺失中间证书引发的,请对照下述流程检查或使用 SSL证书在线检测工具 。

微信小程序对证书要求如下:

原因:在部分安卓系统下证书不可信从而导致无法请求到数据。在证书文件的详细信息-授权信息访问一栏的 Alternative Name 中指定了中间证书的获取 URL 地址。IOS、MAC、Windows、都支持这种方式获取中间证书,唯独部分 Android 系统不支持,所以就无法建立可信连接。所以在切换小程序网络请求域名时请注意检查 SSL 证书是否配置正确。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8122228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存