如果说二维码生成是一个简单的事情,那么使用js生成就是更加简单的一件事了。
以前生成二维码都是找别人的api接口使用的,自从会了php之后,我自己也用php的开源类写了一个,具体可以查看 https://cfhcx.com/400/ 这篇文章,效率还行。但是没有页面缓存,只能搭配 cdn 来长时间的保存已经生成的图片,这虽然可行,但是人一多,付出的成本就大了,所以还是不可靠。
其实很多开发的功能最好的方式其实就是在用户的客户端完成,这样才是最高效的。我也看过很多已经上线的网站,比如,文章页面可以先在用户的客户端加载一个 js 解密解析文件,之后用 js 文件获取我这篇文章的完整数据。这样做的好处就是减少数据库读取,减少用户等待时间。坏处就是SEO差,当然,他们不是做SEO的,只是单纯的减少资源消耗而已。
二维码也是一样,可以用 客户端 完成就不要用服务端,原因就是追求高效。
啥是QRCode.js?
QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5 Canvas 绘制而成,不依赖任何库。
如何使用:
<div id="qrcode"></div>
<script type="text/javascript">
new QRCode(document.getElementById("qrcode"), "http://www.runoob.com"); // 设置要生成二维码的链接
</script>
或者使用一些可选参数设置:
var qrcode = new QRCode("test", {
text: "http://www.runoob.com",
width: 128,
height: 128,
colorDark : "#000000",
colorLight : "#ffffff",
correctLevel : QRCode.CorrectLevel.H
});
同样我们可以使用以下方法:
qrcode.clear(); // 清除代码
qrcode.makeCode("http://www.w3cschool.cc"); // 生成另外一个二维码
实例代码:
<input id="text" type="text" value="http://www.runoob.com" /><br />
<div id="qrcode"></div>
var qrcode = new QRCode("qrcode");
function makeCode () {
var elText = document.getElementById("text");
if (!elText.value) {
alert("Input a text");
elText.focus();
return;
}
qrcode.makeCode(elText.value);
}
makeCode();
$("#text").
on("blur", function () {
makeCode();
}).
on("keydown", function (e) {
if (e.keyCode == 13) {
makeCode();
}
});
引入js库:
js库下载地址:
[button url="https://mxooo.lanzoui.com/iHMzOqt4uyd" types="down"]蓝奏云下载[/button]
正文结束