1.WXML冒泡事件列表
解析:
[1]touchstart:手指触摸动作开始
[2]touchmove:手指触摸后移动
[3]touchcancel:手指触摸动作被打断,如来电提醒,弹窗
[4]touchend:手指触摸动作结束
[5]tap:手指触摸后马上离开
[6]longpress:手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发
[7]longtap:手指触摸后,超过350ms再离开[推荐使用longpress事件代替]
[8]transitionend:会在WXSS transition或wx.createAnimation动画结束后触发
[9]animationstart:会在一个WXSS animation动画开始时触发
[10]animationiteration:会在一个WXSS animation一次迭代结束时触发
[11]animationend:会在一个WXSS animation动画完成时触发
[12]touchforcechange:在支持3D Touch的iPhone设备,重按时会触发
2.生命周期相关函数
解析:
[1]生命周期函数–监听页面初次渲染完成:onReady
[2]生命周期函数–监听页面显示:onShow
[3]生命周期函数–监听页面隐藏:onHide
[4]页面相关事件处理函数–监听用户下拉动作:onPullDownRefresh
[5]页面上拉触底事件的处理函数:onReachBottom
[6]用户点击右上角分享:onShareAppMessage
[7]生命周期函数–监听页面卸载:onUnload
3.微信小程序消息推送服务
解析:
[1]开发者服务器接收消息推送
[2]云函数接收消息推送
[3]微信云托管服务接收消息推送
4.加密/校验流程
解析:
[1]将token、timestamp、nonce三个参数进行字典序排序
[2]将三个参数字符串拼接成一个字符串进行sha1加密
[3]开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
5.微信小程序存储
解析:每个微信小程序都可以有自己的本地缓存,可以通过wx.setStorage/wx.setStorageSync、wx.getStorage/wx.getStorageSync、wx.clearStorage/wx.clearStorageSync,wx.removeStorage/wx.removeStorageSync对本地缓存进行读写和清理。
6.多线程Worker
解析:
[1]一些异步处理的任务,可以放置于Worker中运行,待运行结束后,再把结果返回到小程序主线程。Worker运行于一个单独的全局上下文与线程中,不能直接调用主线程的方法。
[2]Worker与主线程之间的数据传输,双方使用Worker.postMessage()来发送数据,Worker.onMessage()来接收数据,传输的数据并不是直接共享,而是被复制的。
7.UnionID机制说明
解析:对同一个微信开放平台下的不同应用,UnionID是相同的。
8.UnionID获取途径
解析:
[1]开发者可以直接通过wx.login+code2Session获取到该用户UnionID,无须用户授权。
[2]小程序端调用云函数时,可在云函数中通过Cloud.getWXContext获取UnionID。
[3]用户在小程序中支付完成后,开发者可以直接通过getPaidUnionId接口获取该用户的UnionID,无需用户授权。

9.页面Page实例的生命周期
解析:

10.事件监听API
解析:这类API接受一个回调函数作为参数,当事件触发时会调用这个回调函数,并将相关数据以参数形式传入。
11.异步API返回Promise
解析:wx.chooseImage().then(res => console.log('res: ', res))
12.获取手机号码
解析:
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
相关函数,如下所示:
getPhoneNumber: function (e) {
var that = this;
console.log(e.detail.errMsg == "getPhoneNumber:ok");
if (e.detail.errMsg == "getPhoneNumber:ok") {
wx.request({
url: 'http://localhost/index/users/decodePhone',
data: {
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
sessionKey: that.data.session_key,
uid: "",
},
method: "post",
success: function (res) {
console.log(res);
}
})
}
}
13.wx.authorize()
解析:提前询问授权,之后需要获取相关信息的时候不用再次弹出授权。
14.jscode2session
解析:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
15.微信openID和UnionID区别
解析:
[1]openid=28同一用户同一应用唯一,unionid=29同一用户不同应用唯一
[2]这里的不同应用是指在同一微信开发平台下的不同应用
16.wx.openSetting()
解析:开发者可以调用wx.openSetting打开设置界面,引导用户开启授权。
17.wx.authorize()
解析:开发者可以使用wx.authorize在调用需授权API之前,提前向用户发起授权请求。
18.getCurrentPages()
解析:开发者可以使用getCurrentPages()函数获取当前页面栈。
19.wx.checkSession()
解析:
[1]授权时先调用checkSession判断session_key是否失效,失效重新调用wx.login。
[2]先wx.login获取code,再拿code生成3rd_session,前端拿到3rd_session后存起来,每次进来先checkSession判断code是否过期,再判断3rd_session是否过期,任何一个过期都重新走一遍登录流程。
[3]调用wx.checkSession接口检测当前用户登录态是否有效。
20.setData()
解析:setData函数用于将数据从逻辑层发送到视图层[异步],同时改变对应的this.data的值[同步]。
[1]setData这个方法只是给当前页面设置
[2]globalData全局变量
[3]setStorage/setStorageSyn是数据缓存,关闭再打开也是有的
21.bindgetphonenumber绑定事件回调参数
解析:
[1]errMsg:用户点击取消或授权的信息回调
[2]iv:加密算法的初始向量[如果用户没有同意授权则为undefined]
[3]encryptedData:用户信息的加密数据[如果用户没有同意授权同样返回undefined]
22.微信公众号通讯方式
解析:
[1]消息通讯:对话界面或应用服务器后台
[2]高级接口:应用服务器后台
[3]HTML5网页:JSAPI、JS-SDK
23.WebSocket原理
解析:
[1]WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议
[2]在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据相互传送
[3]浏览器通过JavaScript向服务器发出建立WebSocket连接的请求,连接建立以后,客户端和服务器端就可以通过TCP连接直接交换数据
24.unionid和openid问题
解析:如果先有公众号并且积累了大量粉丝,然后才有的小程序,然后想在小程序下也能识别公众号粉丝怎么办呢?
[1]首先将公众号和小程序关联到同一个开放平台账号
[2]通过API将公众号粉丝列表全部拉一遍,同时计算这些粉丝的unionid并保存起来
[3]用户进入小程序时计算unionid,然后根据之前保存的公众号粉丝unionid的数据映射过去就好了
25.Fiddler
解析:Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一。它能够记录客户端和服务器之间的所有请求,可以针对特定的请求,分析请求数据、设置断点、调试Web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是Web调试的利器。
参考文献:
[1]miniprogram-demo:https://github.com/wechat-miniprogram/miniprogram-demo
[2]weui-wxss:https://github.com/Tencent/weui-wxss
[3]wx.d.ts:https://github.com/hellopao/wx.d.ts
[4]页面路由:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/route.html
[5]微信官方文档:https://developers.weixin.qq.com/doc/
[6]微信小程序登录功能的前端设计与实现:https://blog.csdn.net/QcloudCommunity/article/details/109234093
[7]微信小程序开发接口之授权wx.authorize用法:https://www.cnblogs.com/96net/p/13061958.html
[8]Senparc.Weixin SDK微信公众号.NET开发教程:https://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html
[9]JS-SDK说明文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
[10]网站应用微信登录开发指南:https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html
[11]微信服务平台:https://fuwu.weixin.qq.com/
[12]微信支付:https://pay.weixin.qq.com/index.php/core/home/login
[13]Weex:http://doc.weex.io/zh/guide/introduction.html
[14]GoEasy IM聊天和即时通讯:https://ext.dcloud.net.cn/plugin?id=5177
[15]GoEasy 2开发者中心:https://www.goeasy.io/cn/developers/2.x.html
[16]Websocket聊天和IM即时通讯介绍:https://www.goeasy.io/cn/docs/goeasy-2.x/im/im.html
[17]DCloud插件市场:https://ext.dcloud.net.cn/
[18]Vue教程:https://learning.dcloud.io/#/?vid=0
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总
深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal
前言一般来说,前端根据后台返回code码展示对应内容只需要在前台判断code值展示对应的内容即可,但要是匹配的code码比较多或者多个页面用到时,为了便于后期维护,后台就会使用字典表让前端匹配,下面我将在微信小程序中通过wxs的方法实现这个操作。为什么要使用wxs?{{method(a,b)}}可以看到,上述代码是一个调用方法传值的操作,在vue中很常见,多用于数据之间的转换,但由于微信小程序诸多限制的原因,你并不能优雅的这样操作,可能有人会说,为什么不用if判断实现呢?但是if判断的局限性在于如果存在数据量过大时,大量重复性操作和if判断会让你的代码显得异常冗余。wxswxs相当于是一个独立
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
我完全不是程序员,正在学习使用Ruby和Rails框架进行编程。我目前正在使用Ruby1.8.7和Rails3.0.3,但我想知道我是否应该升级到Ruby1.9,因为我真的没有任何升级的“遗留”成本。缺点是什么?我是否会遇到与普通gem的兼容性问题,或者甚至其他我不太了解甚至无法预料的问题? 最佳答案 你应该升级。不要坚持从1.8.7开始。如果您发现不支持1.9.2的gem,请避免使用它们(因为它们很可能不被维护)。如果您对gem是否兼容1.9.2有任何疑问,您可以在以下位置查看:http://www.railsplugins.or
如何学习ruby的正则表达式?(对于假人) 最佳答案 http://www.rubular.com/在Ruby中使用正则表达式时是一个很棒的工具,因为它可以立即将结果可视化。 关于ruby-我如何学习ruby的正则表达式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1881231/
深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG
文章目录1、自相关函数ACF2、偏自相关函数PACF3、ARIMA(p,d,q)的阶数判断4、代码实现1、引入所需依赖2、数据读取与处理3、一阶差分与绘图4、ACF5、PACF1、自相关函数ACF自相关函数反映了同一序列在不同时序的取值之间的相关性。公式:ACF(k)=ρk=Cov(yt,yt−k)Var(yt)ACF(k)=\rho_{k}=\frac{Cov(y_{t},y_{t-k})}{Var(y_{t})}ACF(k)=ρk=Var(yt)Cov(yt,yt−k)其中分子用于求协方差矩阵,分母用于计算样本方差。求出的ACF值为[-1,1]。但对于一个平稳的AR模型,求出其滞