乐趣区

关于前端:分享一款巨好用的抽奖插件并教你如何用jsjiami来保护自己的前端代码

故事背景

前段时间在公司正坐着划水,领导冷不丁从背地啪的一下丢给我了一个需要,公司官网最近要搞流动,须要一做一个大转盘抽奖,必须要有底细,我说中啥就中啥。

而后我就开始构思如何实现这个性能,我职位是后端,又给我丢这种前端活儿。。。。。。

初步思考

丢给我的第一工夫,我的想法是这样的,画几个圆盘图片,而后定时轮训播放达到看起来像指针在抽奖的成果。

相似于这样,作者手画图莫厌弃。

做完后给领导过了一眼,当场差点要拿板凳砸我。于是我默默转换思路,试图用 css3 的来绘制转盘以及实现指针的转动成果,这样的话能够让奖品动态变化,看起来也更丝滑。接下来是漫长的自我学习 css3 相干常识的工夫 …

新的发现

而后在学习 css3 相干常识的途中,看到了某作者举荐的一个抽奖插件,如同是作者自己在举荐哈哈。

插件的名字叫 lucky-canvas 抽奖插件 我点进去一看,发现抽奖形式品种泛滥,有大转盘、九宫格、老虎机。

反对语法类型也多,js/vue/React/UniApp/Taro/ 微信小程序 都反对,领导丢给我的活儿是做抽奖大转盘。我间接依照官网给的 demo 做了一个进去,丢给领导过目。如下图所示

而后我看领导一通演示,领导看过之后直夸好,动画成果丝滑,转盘启动完结还有减速加快成果。这样前端的转盘性能就实现了一大半了

开始思考如何舞弊

领导想要这个转盘不是随机的,而是咱们指哪打哪。我去钻研了一下这个抽奖插件的 api 文档,发现两头概率是能够设置的,有一个 range 选项,而后实现了一下的确可行,百分百不两头的转盘就这么实现啦。

发现问题

在做完之后,开心了大概几分钟后,我逐步意识到不对,因为这个中奖概率配置是裸露在前端的,如果某程序员好奇心重,关上 F12 调试一看,这个转盘其实是百分百不会中奖的转盘,那岂不是会出大问题?尽管咱们拜访公司网站的程序员并不多,能够说根本没有,然而为了以防万一,我还是给领导反馈这个问题,领导听了我的反馈后,十分满意的夸赞了我一番,说我做事件思考周全之类的 …. 省略一万字的饼,而后再次将这个难题丢给了我让我着手解决。。。

解决问题

其实在我想到这个问题的时候,我曾经有了解决方案,因为之前敲代码的时候,免不了常常须要解析格式化 json,不便察看接口数据。我在 sojson 网站里之前发现过一个前端 js 加密 的工具,后边如同还推出过一个 jsjiemie.v6 的专门爱护前端平安的在线 js 加密站,提供了很多 js 接口加密计划。

首先我应用了 crypto-js 中的多重加密,和后端应用同一个加密计划验证接口用,而后应用 jsjiami.v6 将前端所有 js 代码混同加密。如下图操作,我的源码就不贴了,秘密哈哈。

这样就功败垂成啦,谁也发现不了咱们抽奖的小机密了哈哈哈

退出移动版