摘要:
写爬虫时遇到用Promise.all同时请求多个页面,不可避免的会遇到某些请求失败的情况,这时可以实现一个“重发失败请求”的功能。 Promise.all(task).then().catch() 会在所有task都resolve时才会进then方法,并且把所有结果以一个数组返回。只要有一个失败,就 阅读全文
摘要:
上图为网易云盾的滑动拼图验证码,同一张图片裁剪的位置是固定的,猜想其应该有一个专门的图片库,保存了被裁剪的背景图和可移动的滑块。我的想法是,随机生成图片,随机生成位置,再用canvas裁剪出滑块和背景图。下面介绍具体步骤。 首先随便找一张图片渲染到canvas上,这里 canvas作为画布, blo 阅读全文
摘要:
我觉得很多人都错误理解了闭包,或者说根本就不理解,只是人云亦云。 "维基百科" )对于闭包的描述: a closure is a record storing a function together with an environment: a mapping associating each fr 阅读全文
摘要:
场景:vue router实现的单页应用,登录页调用登录接口后,服务器返回用户信息,然后通过router.push({name: 'index', params: res.data})跳转到主页,并在主页显示数据。但是当刷新页面时,由于并不是通过登录接口进入主页,router中没有‘params: 阅读全文
摘要:
cli是command line interface的缩写,即命令行工具,常用的 vue cli , create react app , express generator 等都是cli工具。 本文以自己开发my cli为例,将开发到发布过程完整记录下来,看完本文,你将学会如何从零开发一个cli项 阅读全文
摘要:
微信小程序demo "github地址" 去年小程序刚发布时特别火,赶潮流做了个demo。感觉小程序开发还是比较简单的,主要是官方文档写得比较好,遗憾的是很多API需要微信认证才能使用。 由于小程序包大小限制在1M以内,所以商品图片等资源放在了云上,另外用Nodejs+Express写了个简单的AP 阅读全文
摘要:
call和apply call和aplly作用完全一样,都是在特定的上下文中调用函数,或者说改变函数内部的this指向;区别仅在于接收参数的方式不同。 var dog = { name: "dog" }; var cat = { name: "cat" }; var sayName = functi 阅读全文
摘要:
简单地说,prototype就是原型对象的一个开放接口,让我们可以为对象的实例扩展属性和方法。 先看一下对象的静态方法和实例方法。 由此可以看出,对象的静态方法不能被对象实例调用。例如String对象的fromCharCode()方法,正确的调用方法应该是 String.fromCharCode() 阅读全文