公司名称:河南省智慧云码广告传媒有限公司

联系人:飞先生 先生 (策划经理)

电话:037766080955

传真:

手机:15083352255

南阳图片转二维码制作,视频生成二维码,互联网二维码生成器,

发布时间:2022年11月18日

详细说明

  根据返回数据动态生成分享是很常见的场景。比如在起点读书小程序中,每本书都需要生成一个动态,包含:书名、作者、类别和当前页面小程序二维码,这几个内容都是会动态改变的。

  那如何抽象化&高性能的实现这一类需求呢?方案对比,目前业界已经有很多实现动态的方案,主要分为两种:客户端实现和服务端实现,下面根据我们的调研和实践经验,分别介绍下这两种实现方式和它们的优缺点。

  客户端实现-html2canvas,实现过生成动态功能的同学肯定对 html2canvas 不会陌生,一个函数就能将 html 绘制到 canvas 中去,再通过canvas 的 toDataUrl 方法就能获取到信息了。整体流程大致是这样,但只要用过 html2canvas 的人肯定知道,这个过程并没有这么丝滑。正如它的 readme 里说的那样,它并不一定能百分之100 html 元素在网页中的样子。表现出来的问题有很多, 兼容性,在不同端上的表现不一致、一些属性不支持。

  服务端实现:Puppeteer,既然 html2canvas 有这么多坑,那我们能不能放弃在 Canvas 中做渲染这个方案,而是直接把 html 在网页中显示出来,然后直接截个图就好了。Puppeteer 就可以帮我们实现。Puppeteer 其实就是一个可以被代码操控的 Chrome 浏览器,你可以通过 Puppeteer 的 api 来打开一个 Chrome 的 Tab,渲染 Html,再截个图。这样我们就统一了的生成环境,解决了兼容性问题。

  总结与展望,目前 Golang + Nodejs 方案,针对不那么复杂的动态,提高了生成需求的效率,节省开发时长,性能上也得到了保障。

河南省智慧云码广告传媒有限公司


联系人:飞先生 先生 (策划经理)
电 话:037766080955
传 真:
手 机:15083352255
地 址:中国河南南阳市高新区张衡街道两相路万世华庭1号楼019号
邮 编:
网 址:http://zhym001.qy6.com.cn(加入收藏)