作者简介:黄文俊,现任腾讯云SCF无服务器云函数高级产品经理,多年企业级系统开发和架构工作经验,对企业级存储、容器平台、微服务架构、无服务器计算等领域均有涉猎。 image.png 小程序的后台技术 小程序,是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验。 首先从最前面的小程序来看,这个案例也是小程序开发者上面的demo,demo的前端包括登陆端口,以及session展示,我们在小程序这端首先获取一个talk,开发者拿到以后再跟微信交互,验证合法以后,我们这里选择了记录到云数据库 A:对,这是小程序方面的要求,因为小程序要求必须使用自有域名和小程序打通。 Q:小程序即用即删,如果手机里面有很多会很卡,如果小程序用过在微信上面的页面会显示出来,如果上万个对微信本身有什么影响? 使用 serverless 构建小程序后台.pdf
工作人员找到范俊豪,他一口答应下来,“我就特别愿意,因为我就喜欢唱歌”。 ? 整整录了两天,从早到晚。录完就没有声音说话了,并且腰疼。 十年前的范俊豪还不会腰疼。 接下来的五分钟,范俊豪滔滔不绝。我也从简约开始,了解了踢脚线,挡边条,以及标准化施工工艺。 ? 在范俊豪看来,装修是一个综合了艺术思维与工程思维的领域。 歌唱比赛冠军、装修达人、炒股小能手、特斯拉发烧友、Geek……在不相干的领域里,他都取得过令人侧目的成就,或积累了相当程度的领悟与洞见。 范俊豪经常用这个手机壳劝别人。 糍粑扭着小屁股,脸上的肉肉随着脑袋摇摆一嘟一嘟,咯咯笑。 再过一段时间,糍粑就能住进新房子了。那是她的爸爸一笔一划规划,一砖一瓦打造的新房子。
作者:王俊煜 知晓程序注: 到 2018 年 1 月 9 日,小程序就上线一周年了。为此,知晓程序推出了小程序上线一周年系列文章。 这一次,我们邀请到了「轻芒」的联合创始人王俊煜和大家来分享,他和小程序的这一年。 2017 年就要过去了。我经常在想,2010 年和 2017 年有什么相同点,又有什么区别? 比如说—— 2017 年——到年底,小程序的报道铺天盖地,专门报道小程序的媒体已经有好几个了,隔三岔五也有关于小程序的会议、论坛。尽管还是有许多人不看好,但也有更多的人在说小程序是个机会。 小程序和智能手机还是挺不一样的。对你——一个用户来说,并没有什么事情是在小程序出现之前做不到的,小程序出现之后可以做到了。但,这些事情确实做起来更方便了。 「轻芒杂志」小程序第一版 然后,我们再来想在小程序中能基于微信的场景做出什么特点。
10. Promise.all 和 Promise.allSettled 有什么区别?
小程序需要经常和用户进行各种交互,比如,点击界面上的某个按钮或者区域,比如滑动了某个区域;这些交互都会产生各种各样的事件。
light类 的元素执行 .light{ } .item{ &:not(.light):hover{ color: #FE6225 } } 10
pandas是数据科学家必备的数据处理库,我们今天总结了10个在实际应用中肯定会用到的技巧 1、Select from table where f1=’a’ and f2=’b’ 使用AND或OR选择子集 in df.columns: if col[0:7] == "Unnamed": df.drop(col, inplace=True, axis=1) return df 10
let arr=[]
arr[10]=11
console.log(arr.length); //11
arr[-1]=-1
console.log(arr.length) //11 let str=comment.split(/\r\n|\r|\n/g).join('
')
前言: 这里记录我在工作或学习中用到的小技巧 1、获取指定日期的上一周或上上周(moment.js) 比如获取2019-01-01的上一周的起始日期或者是上N周的起始日期 <script src="moment.js 注意: 需要设置一个 flag 保存在 localStroage 中,作为页面滚动的tirgger 如果是跨域的话,可以通过router,判断前一个 router 是否是 页面 A 的 router <em>10</em>
(0, 2)); // [1, 2] console.log(arr) // [3, 4, 5, 6] 9、git删除远程分支 git push origin --delete <branch> 10
前言: 这里记录我工作、学习中值得注意的小知识点,希望对你有所帮助。 10、js禁止excel格式转化(重要!)
let obj={'哈哈':1} const {'哈哈':b}=obj const {a:{'嘿嘿':b}}=obj console.log(b,'b24') //1 10、对象解构赋默认值
Android小知识10则(上) github传送门 注: 在目录中点击可以跳转到具体代码页 目录 Chronometer和CountDownTimer计时器 Chronometer的使用 CountDownTimer 动态数组 转变为静态数组 首先是ArrayList转变为静态数组, 这个算是个小知识点吧, toArray方法中的参数要写对. progress)); mSbTest.setProgress(++progress); mSbTest.setSecondaryProgress(progress + 10 setSecondaryProgress(progress2 + 20); mHandler.postDelayed(this, 50); } } ---- 最后 这样就写完10
.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.5;margin-top:35px;margin-bottom:10px #f8f8f8}.markdown-body blockquote:after{display:block;content:""}.markdown-body blockquote>p{margin:10px let test: boolean; if (x > 100) { test = true; } else { test = false; } // 简洁 let test = x > 10 冗余 let test = ''; for(let i = 0; i < 5; i ++) { test += 'test '; } // 简洁 'test '.repeat(5); 10
); //6
原理:
JS是用双精度浮点数来存储number类型的, 而|是二进制或,会先将number转为整数,再进行位运算,所以可以用来取整
补充:
(1) 关于或运算|具体的演算过程,请看:前端小知识 10点(2020.3.20)中的「2、JS 中的 | 是什么意思?」 function(canvas) {
setCanvasOne(canvas.toDataURL())
});
7、使用原生js拖拽div的小demo 使用 CSS3 的滤镜:
{
filter: grayscale(100%);
}
详细请看:
https://www.runoob.com/cssref/css3-pr-filter.html
10
1、redux的compose实现 例: const add = num => num + 10 const multiply = num => num * 2 const foo = compose ] ,不改变原数组 // 从倒数第二个 index 开始截取,到倒数第一个 index 结束(不包括 -1) arr.slice(-2,-1) // 左开右闭,返回[2] ,不改变原数组 10 ③ child componentDidMount ④ app componentDidMount 参考: React的ClassComp和FunctionComp组件的更新/卸载顺序 ---- 小进进已开通
/IE需要这么写 svg.attr('transform', `rotate(180,0 0)`) 详情请参考:https://www.zhangxinxu.com/wordpress/2015/10 详情请参考:https://www.zhihu.com/question/22818104 10、浏览器类别判断 window.navigator.userAgent console.log(window.navigator.userAgent
延迟更新附件的浏览量,可明显降低访问量很大的站点的服务器负担,建议开启本功能 最大在线人数:范围 10~65535,建议设置为平均在线人数的 10 倍左右 在线保持时间(分钟):根据访问情况设置合理的数值 ,访问量大的站点应当调小该数值,设置范围 5 - 60,过大或者过小的设置都有可能会增大服务器资源开销 开启图片延时加载:是。 7、discuz开启Gzip 假设我们访问的一个页面有100kb,如果已经开启Gzip了,服务器会把这个页面压缩成zip文件,可能只有10kb或更小,就会节省带宽和下载时间。 分表功能可以将帖子分在不同的数据表中,适合帖子数很多并且运行效率受到影响的站点使用 9、discuz插件筛选 在没有必要的情况尽量少装插件,有些插件调用很多sql反而降低效率 10、discuz模板优化
function circle(r){ return pi = Math.pow(r,2) } Shape.circle = circle })(Shape || (Shape = {})) 10
let test: boolean; if (x > 100) { test = true; } else { test = false; } // 简洁 let test = x > 10 冗余 let test = ''; for(let i = 0; i < 5; i ++) { test += 'test '; } // 简洁 'test '.repeat(5); 10