面包屑思维模型实战模型错题集结构手册流程手册自我检测专题模块
-
微信小程序前端微信小程序前端易错点收集查看
-
css/less/sass样式控制在开发过程中的一些样式控制bug规避查看
-
tp5开发小程序tp5开发小程序时错误积累查看
-
PHP错题集PHP在实际开发过程中遇到的问题查看
-
MySql数据库使用MySql在实际开发中遇到的错误总结查看
-
TP5错题集积累tp5框架在实际开发过程中遇到的问题查看
-
uni-app爬坑主要用于uni-app项目中遇到的一些问题查看
-
Vue.js易错收集vue.js项目常见错误收集整理查看
-
uni-app开发微信小程序uni-app开发微信小程序的一些爬坑积累查看
-
LinuxLinux在部署、开发、运维时遇见的错误积累查看
-
安全设计常见安全设计查看
-
Redis项目中使用redis的相关错误积累查看
-
前端特效前端特效相关错题集查看
最新博文
-
ios时间格式为2020-02-02使用new Data()转化为时间戳的问题
uni-app
阅读更多风口下的猪2020-03-02【uni-app】
-
Windows netstat 查看端口、进程占用
计算机操作系统操作分为两步:
一.查看该端口被那个PID所占用;
方法一:有针对性的查看端口
使用命令Netstat –ano|findstr “<端口号>”,
如图,最后一列为PID。图中的端口号为1068,所对应的PID为3840。
方法二:查看所有的,然后找到对应的端口和PID。第一幅图中的5列就是上面(a)图对应的5列二.查看该PID对应的进程名称。
一直用命令查找,tasklist|findstr “<PID号>”从 (c)图 可以看出,PID为3840所对应的进程名字为msnmsgr.exe附:网络连接状态详解
共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。
1)、LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN./* The socket is listening for incoming connections. 侦听来自远方TCP端口的连接请求 */
2)、 SYN_SENT:客户端通过应用程序调用connect进行active open.于是客户端tcp发送一个SYN以请求建立一个连接.之后状态置为SYN_SENT./*The socket is actively attempting to establish a connection. 在发送连接请求后等待匹配的连接请求 */
3)、 SYN_RECV:服务端应发出ACK确认客户端的 SYN,同时自己向客户端发送一个SYN. 之后状态置为SYN_RECV/* A connection request has been received from the network. 在收到和发送一个连接请求后等待对连接请求的确认 */
4)、ESTABLISHED: 代表一个打开的连接,双方可以进行或已经在数据交互了。/* The socket has an established connection. 代表一个打开的连接,数据可以传送给用户 */
5)、 FIN_WAIT1:主动关闭(active close)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态./* The socket is closed, and the connection is shutting down. 等待远程TCP的连接中断请求,或先前的连接中断请求的确认 */
6)、CLOSE_WAIT:被动关闭(passive close)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT./* The remote end has shut down, waiting for the socket to close. 等待从本地用户发来的连接中断请求 */
7)、FIN_WAIT2:主动关闭端接到ACK后,就进入了 FIN-WAIT-2 ./* Connection is closed, and the socket is waiting for a shutdown from the remote end. 从远程TCP等待连接中断请求 */
8)、LAST_ACK:被动关闭端一段时间后,接收到文件结束符的应用程 序将调用CLOSE关闭连接。这导致它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK ./* The remote end has shut down, and the socket is closed. Waiting for acknowledgement. 等待原来发向远程TCP的连接中断请求的确认 */
9)、TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态。/* The socket is waiting after close to handle packets still in the network.等待足够的时间以确保远程TCP接收到连接中断请求的确认 */
10)、CLOSING: 比较少见./* Both sockets are shut down but we still don’t have all our data sent. 等待远程TCP对连接中断的确认 */
11)、CLOSED: 被动关闭端在接受到ACK包后,就进入了closed的状态。连接结束./* The socket is not being used. 没有任何连接状态 */
12)、UNKNOWN: 未知的Socket状态。/* The state of the socket is unknown. */
SYN: (同步序列编号,Synchronize Sequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
ACK: (确认编号,Acknowledgement Number)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
FIN: (结束标志,FINish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。
阅读更多风口下的猪2020-03-01【计算机操作系统】
-
在获取异步函数(uniapp中的uni.request等)返回结果,用renturn报undefined
uni-app
阅读更多风口下的猪2020-02-22【uni-app】
-
uni-app路由跳转及参数的传参和接收
uni-appuniapp页面间传值主要有以下几种方式:
1.保留当前页面,跳转到应用内的某个页面,使用uni.navigateTo:
示例:
在起始页面跳转到test.vue页面并传递参数
uni.navigateTo({ url: 'test?id=1&name=uniapp'});
// 在test.vue页面接受参数
export default {
onLoad: (option) { //option为object类型,会序列化上个页面传递的参数
console.log(option.id); //打印出上个页面传递的参数。
console.log(option.name);//打印出上个页面传递的参数。
}
}2.关闭当前页面,跳转到应用内的某个页面uni.redirectTo:
示例:
uni.redirectTo({ url: 'test?id=1'});
3.关闭所有页面,打开到应用内的某个页面,uni.reLaunch:
示例:
uni.reLaunch({ url: 'test?id=1'});
export default {
onLoad:(option) {
console.log(option.id);
}
}4.跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面,
pages.json
{
"tabBar": {
"list": [
{ "pagePath": "pages/index/index", "text": "首页" },
{ "pagePath": "pages/other/other", "text": "其他" }
]
}
}other.vue
uni.switchTab({ url: '/pages/index/index'});
5.关闭当前页面,返回上一页面或多级页面,uni.navigateTo
// 注意:调用 navigateTo 跳转时,调用该方法的页面会被加入堆栈,而 redirectTo 方法则不会。见下方示例代码
// 此处是A页面
uni.navigateTo({ url: 'B?id=1'});
// 此处是B页面
uni.navigateTo({ url: 'C?id=1'});
// 在C页面内 navigateBack,将返回A页面
uni.navigateBack({ delta: 2});
阅读更多风口下的猪2020-02-21【uni-app】
-
js数组排序实用方法集锦
JavaScript对于数组排序,这里主要介绍sort()方法(sort基本上已经能满足绝大多数数组的排序了)。
array.sort():
sort() 方法用于对数组的元素进行排序,默认按“字母”升序,即使数组的元素是数字,因此,对于数字,就需要特殊的写法了。
普通数组:
1. 字符串数组:
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort();//默认升序 Apple,Banana,Mango,Orange fruits.sort().reverse();//降序 Orange,Mango,Banana,Apple
2. 数字数组:
由于sort()方法默认按“字母”升序,所以对于数字组成的数组,就需要使用特殊的写法来进行排序了。
先上代码,具体写法如下:
arr.sort((a,b)=>{return a-b})//升序 arr.sort((a,b)=>{return b-a})//降序
如上,使用数字对数组进行排序,就需要通过一个函数作为参数来调用。
对象数组:
使用场景——已知某品牌门店列表数据(含距当前位置的距离),需要按距离由仅及远排序,具体实现方法如下:
var shoplist = [{ "name": "上塘中海锦城", "distance": 14307.0275 }, { "name": "汉堡王深圳华强北店", "distance": 16606.5901 }, { "name": "汉堡王深圳蔡屋围店", "distance": 18062.4395 }, { "name": "汉堡王深圳金丰城店", "distance": 18468.4439 }, { "name": "汉堡王深圳地王店", "distance": 18484.8283 }, { "name": "汉堡王深圳龙岗宝能店", "distance": 39006.9269 }, { "name": "汉堡王深圳龙华绿景香颂店", "distance": 15356.4863 }, { "name": "汉堡王深圳西荟城店", "distance": 24990.1325 }, { "name": "汉堡王深圳魅力时代店", "distance": 8228.8474 }, { "name": "汉堡王深圳福华三路店", "distance": 12693.439 }] shoplist.sort((a, b) => { return a.distance - b.distance })
如上,关键代码就一句:
shoplist.sort((a,b)=>{return a.distance-b.distance})
简单分析不难发现,这跟上面数字数组排序用法是一样的,只不过是这里使用了数组中对象元素的 distance 这一数字字段进行比较排序的。
经过排序后的数据如下图,门店列表已经按距离字段进行升序排列,根据这些排序后的数据进行展示就OK了:
反序排序:
与上面排序不同,反转排序方法 reverse() 将一个数组中的元素的顺序反转排序。
这个方法单独使用的场景不多,但是结合sort()排序方法使用的场景比较多一些,特别是对于一些复杂的数组。
如网上商城商品搜索列表页面的正序、反序,有根据价格的,有根据销量的,还有根据评价的,如果单单是正序,或者是排序,那么直接用sort()方法就好了。但如果正序排序之后又需要进行反序排列,那么直接用reverse()进行反转就OK了,没必要再用sort()进行反序排列,无论是在写法上,还是计算速度上都要快好多的:
//1. sort()进行反序 shoplist.sort((a,b)=>{return b.distance-a.distance}) //2. reverse()反序 shoplist.reverse()
来源地址:https://www.cnblogs.com/xyyt
阅读更多风口下的猪2020-02-19【JavaScript】
-
路由分组公共部分末尾不能添斜杠/
thinkphp
阅读更多风口下的猪2020-02-15【thinkphp】
-
个人支付宝支付接口实现(2)
支付前端唤起支付宝app访问具体url的方法是
href="alipays://platformapi/startapp?appId=20000067&url=付款的URL"(当然,这里的url还是尽量urlencode一下)。
这里的URL是支付宝扫码付请求预订单成功后返回的$result['qr_code']
阅读更多风口下的猪2020-02-06【支付】
-
个人支付宝支付接口实现(1)
支付个人支付宝接口,主要有三种实现方法:
(1)使用网上的第三方支付服务商接口,接受别人支付抽成,并且有第三方跑路风险(极其不推荐);
(2)开发一个监听手机消息通知栏消息的APP,使其可后台运行、防锁屏停止,当接收到支付宝或微信的支付信息时便访问服务器websocket接口,在比对金额后向同一端口通道的客户端socket发送支付成功的消息。但由于消息通知栏监听不能保证没电、网络中断等情况下还能监听消息栏信息。并且此种方案不能解决高并发状况,也不推荐;
(3)有一个思路,通过支付宝扫码付+支付宝唤起+socket,做一个不扫码的手机支付接口。
阅读更多风口下的猪2020-02-06【支付】
-
支付逻辑概述(1)
支付无论是支付宝支付还是微信支付,大概的逻辑几乎都是这样:
(1)将配置信息和订单信息揉在一起,实例化预订单对象;
(2)为该预订单对象加密签名(支付宝用RSA2,微信一般用md5);
(3)向支付网关发起预订单支付请求(网关比对签名成功便进行支付);
(4)支付完成后支付网关会以一定频率异步访问服务器端的回调地址,通知支付成功或者失败;
阅读更多风口下的猪2020-02-06【支付】
-
优惠券拼接
淘宝联盟将普通优惠券链接和别人的优惠券链接解析、并且拼接成自己的优惠券是常有的事。
有效的优惠券链接组成有以下几个部分
https://uland.taobao.com/coupon/detail?
activityId=(优惠券标识)
&pid=(推广位id三段式)
&itemid=(商品id)
阅读更多风口下的猪2020-02-06【淘宝联盟】
-
合法的me参数
淘宝联盟在share_url中的me参数,是调用官方优惠券查询接口,查询优惠券activity_id的关键参数(activity_id)。主要用来拼接自己的优惠券链接。
一般注意的是:
如果接口返回me参数不合法,要看链接后面是否有定向参数&dx=1等,如果有,要通过字符串相关方法去除。
阅读更多风口下的猪2020-02-06【淘宝联盟】