Puppeteer在21世纪绘本大赛测试初次体验

https://alonhero.oss-cn-qingdao.aliyuncs.com/wordpress/web/WX20181024-105911.png
我们是Puppeteer 幕后控制人

前端Web UI自动化测试,一直是个难点,需要针对不同的设备,但是大部分的WebUi测试,我们还是可以模拟的,之前有PhantomJS 用于前端UI无渲染测试,可以进行图像的对比,但是Puppeteer的横空出世直接宣告PhantomJS的的死刑。Puppeterr的具体信息,见官网

我们碰到的需求是,在21世纪大赛中的分享页面,如果某一个作品的在三分钟内点赞超过400次,那么给于点赞过于频繁的提示,虽然在测试环境测试通过,但是在线上回归测试的,怎么模拟这个现象。一种使用脚本调用点赞接口,但是这种情况,我们无法看到真实的界面,怎么截图看到提示,另一种就是我们利用Puppeteer来模拟的用户的操作,这种情况下,不需要自己调用接口。

阅读 “Puppeteer在21世纪绘本大赛测试初次体验”

canvas中getImageData(),toBlob(),toDataURL()跨域问题的解决

井冈山会师
井冈山会师

 

昨天在吃饭过程中,和同事聊到canvas跨域的的限制,我一开始以为canvas所有的API接口操作不同域的图片都会跨域,但是这是一个错误的想法,比如使用drawImage()方法将图片渲染在canvas中是没有跨域的限制的。

在了解跨域的时候,我们首先要搞清楚什么是浏览器的同源策略。阅读 “canvas中getImageData(),toBlob(),toDataURL()跨域问题的解决”

崀山一日游

国庆回家,买了大疆的mavic zoom 无人机,10月3日赶不上德进的婚礼,和堂姐,表姐一起商量,带着大宝,小宝,老七,和堂姐,表姐的家里的娃一起去崀山浪一天。在家里飞了几次无人机,决定用它在崀山大干一场。

大疆mavic 2 zoom
大疆mavic 2 zoom

当时一直纠结买zoom 还是pro ,现在想想其实zoom够用了,用它跟小宝拍了一张自拍照。阅读 “崀山一日游”

让Web站点优化变得容易:GoogleI/O 2018(译)

减肥前VS减肥后
减肥前VS减肥后

原文地址Web Performance Made Easy: Goodle I/O 2018 edition

一直以来,我们都在竭尽全力的优化web站点,为了是web站点加载更快,性能更好。在这篇文章中,我们想要向大家分享新的工具,方法,库来优化web站点性能。首先,我们会展示在开发Oodles Theater App 的过程,我们用到的一些优化手段,然后我们将会谈论预测加载以及使用guess.js的计划。阅读 “让Web站点优化变得容易:GoogleI/O 2018(译)”

都市.生活:18世纪的东京与北京–首都博物馆

在iMuseum上看到都市.生活:18世纪的东京与北京 主题展在首博开始了,中午吃了碗兰州拉面,来到首都博物馆。

  东京江户区与北京

江户这个名其实是东京的豪族江户氏在此居住,得名而来,此后慢慢的变成全国的经济中心,政治中心,即现在的东京。

日本18世纪东京江户区的醋店招牌
日本18世纪东京江户区的醋店招牌

这个是醋店的店门口挂的牌子,和门口摆换的猴子,其实这个时期的日本有对应的品牌意识了,这个在中国明朝时期已出现了。阅读 “都市.生活:18世纪的东京与北京–首都博物馆”

html5优化指南

web前端发展到2018年的现在,技术已日新月异,从以前的table布局,到利用position + float+盒模型布局flex弹性布局,到grid布局,前端技术从JqueryMVVM,到Google提出的PWA,以及现在的webassembly 人类对于更好的体验,更快的速度的追求,是无止境的,前端页面优化一直是个永恒的话题。那么到现在,我们针对前端的优化有哪些方案呢?

页面加载速度

页面加载速度慢是造成用户体验差的最致命的因素,这个是我们首先需要考虑的一个因素。
从下面的研究数据我们可以看出一些端倪

  • 53%的用户会放弃一个加载超过3s网站 —SOASTA Google study report
  • 当一个网站的加载变快,用户停留的时间就越长的,用户更愿意在加载快的网站上购买东西。 —WPO Stats
  • 加载速度慢的网站,对SEO优化是有害的,这个会降低网站的排名,导致网站访问的频率降低。 —Search Engine Land

阅读 “html5优化指南”

Javascript响应式的最通俗易懂的解释(译)

许多javascript框架(比如:Angular,React,以及Vue)都有它们自己的响应式引擎。我们如果理解了响应式的原理,搞清楚它们是怎么工作的,我们可以提高自己的编程技巧,更有效的使用JavaScript框架。下面的视频和内容,将会帮助我们实现一个与Vue一样的响应式引擎。

响应式系统

 

当我们第一次看见Vue响应式系统工作的时候,感觉它就像充满了魔法一样。 现在我们举一个简单的例子

<div id="app">
    <div> Price :${{price}} </div>
    <div> Total:${{price * quantity}} </div>
    <div> Taxes: ${{totalPriceWithTax}} </div>
</div>

 

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
  var vm = new Vue({
     el:"#app",
    data:{
       price:5.00,
       quantity:2
    },
    computed:{
        totalPriceWithTax(){
              return this.price * this.quantity * 1.03
        }
    }
  })
</script>

不知道为什么,当price 发生变化的时候,Vue就知道自己需要做三件事情:阅读 “Javascript响应式的最通俗易懂的解释(译)”

密码学学习笔记- 消息认证码

密码学的工具箱里有六大工具 :分别是对称密码公钥密码单向散列函数消息认证码数字签名,和伪随机数生成器。

我们从Alice 和Bob的故事开始讲起。我们假设Alice 和 Bob 分别是两家银行。Alice 银行通过网络向Bob银行发送了一个汇款请求。Bob接受的请求是 从账号A向账号B汇款100万元。

这个时候,Bob怎么去确定这条线消息是Alice 发送的,怎么去确定该消息没有别人修改。如汇款请求的原意是“从账号A向账号C汇款100万元”,就是在消息传递的过程,怎么去保证该消息没有被篡改,是否有人伪装发送者发送该消息

其实这问题,我们要关注的问题是消息的“完整性”和“认证”这两个性质。阅读 “密码学学习笔记- 消息认证码”