二维码生成策略之前端生成

前段时间项目中需要动态的生成二维码,经过评估,前后端生成都可以。但后端生成会有两个问题:

  1. 没有找到正规发布出来的后端开源库。
  2. 二维码图片,会随着商品的增加而不断变多。

基于以上两个问题,决定在前端生成二位码。当时使用的是 jquery.qrcode.min.js,可以在github上找到这个类库。

https://github.com/jeromeetienne/jquery-qrcode

下面来介绍下这个类怎么来使用,先看下面这个例子。其中第10行调用方法qrcode来生成二维码。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <script charset=‘utf-8‘ type=‘text/javascript‘ src=‘./jquery.js‘></script>
 5         <script src="./jquery.qrcode.min.js" type="text/javascript"></script>
 6         <script type="text/javascript">
 7         $(document).ready(function(){
 8           $(‘#qr_gen‘).click(function()
 9           {
10             $(‘#qr_container‘).qrcode({render:"canvas",height:120, width:120,correctLevel:0,text:$(‘#qr_link‘).val()});
11           });
12         });
13         </script>
14     </head>
15     <body>
16         <h1>QR CODER</h1>
17         <div>
18             <label for="qr_link">URL:</label>
19             <input id="qr_link" type="text" value="I am going to be a quick response code." style="width:450px;" />
20             <button id="qr_gen" value="Generate">Generate</button> <br />
21         </div>
22         <div id="qr_container" style="margin:auto; position:relative;"></div>
23         </div>
24     </body>
25 </html>

我们来介绍下这几个参数:

render: 二维码图片的生成方式。支持table和canvas来渲染。

height: 二维码高度。

width: 二维码宽度。

correctlevel: 二维码容错级别。

text: 二维码内容。

我们先来看看用table和canvas渲染有什么不同。执行了上面的例子,大家可以看到,二维码使用canvas画出来,在网页上输出一个canvas节点。但是用到table的话,我们会发现二维码实际是使用table表格把每一个二维码的点画出来。网页上的Dom元素会暴多(目前没有发现有拖垮浏览器的现象)。

对一个有追求的人,或者大型的网站,需要对ie, chrome, firefox等浏览器支持。选择canvas,ie7就没办法支持。那就选择table吧,一切看起来都很美好。但在实际使用的过程中,当二维码的内容较多时,二维码的尺寸较小时(比如120px * 120 px),用table来渲染,会发现生成的二维码很难识别(主要发生在chrome上)。

使用下面的办法,所有的浏览器完美支持,而且大部分的用户都会是canvas渲染。

1 try
2 {
3     document.createElement(‘canvas‘).getContext(‘2d‘);
4     $(‘#qr_container‘).qrcode({render:"canvas",height:120, width:120,correctLevel:0,text:$(‘#qr_link‘).val()});
5 } catch (e)
6 {
7     $(‘#qr_container‘).qrcode({render:"table",height:120, width:120,correctLevel:0,text:$(‘#qr_link‘).val()});
8 }

关于这个类库,github上也有简短的用法介绍,不过真的很简短。但作为攻城狮这都不是事,大家可以直接看源代码。源代码是压缩过的,解压一下就行了。

在线解压工具:http://tool.lu/js/

欢迎大家来讨论这个话题。

时间: 2024-11-18 20:38:09

二维码生成策略之前端生成的相关文章

二维码_(一)生成与拼接

毕业后工作单位第一个工作:好坑~~~! 一个简单的小DEMO 各位大神勿喷 生成: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms; us

Android之扫描二维码和根据输入信息生成名片二维码

开发中常常遇到二维码扫码操作,前段时间做项目要实现该功能,于是网上查找资料实现了,现在把他做出来给各位分享一下,主要包含了二维码扫描和生成二维码名片. 先来看看效果图:   生成的二维码,打开微信扫一扫即可看到生成的名片了,可以保存在联系人中. 二维码扫描方式如下图: 生成名片代码 public class BusinessCardActivity extends Activity{ private EditText et_only_company; private EditText et_on

微信支付支付宝支付生成二维码的方法(php生成二维码的三种方法)

如果图简单,可以用在线生成 http://pan.baidu.com/share/qrcode?w=150&h=150&url=http://www.xinzhenkj.com 最简单最实例的goolge开源方法 1.google开放api 代码如下: [php] view plain copy <span style="font-size:14px;">$urlToEncode="http://www.helloweba.com"; g

海报二维码识别不出,生成带参数二维码功能

生成海报二维码,可以统计通过这个二维码进来的粉丝 利用公众号提供的渠道二维码编写源码,生成二维码 use Endroid\QrCode\QrCode; //支持文字.链接 $content = '微号帮参数二维码功能' . rand(1000, 9999); $qrCode = new QrCode($content); // 指定内容类型 header('Content-Type: '.$qrCode->getContentType()); // 输出二维码 echo $qrCode->wr

前端生成二维码插件jquery.qrcode.min.js

1.插件介绍 jquery.qrcode.min.js插件是jq系列的基于jq,在引入该插件之前要先引入jq.能够在客户端生成矩阵二维码QRCode 的jquery插件 ,使用它可以很方便的在页面上生成二维条码. 闲话少说,看demo吧!(haha...) 2.快速使用demo 简单介绍:这是一款快速应用案例,没有太特殊的需求的话够用了.鉴于需求,本例是把二维码生成了图片,可以保存到手机,然后发送给好友,直接识别二维码. 1 <!DOCTYPE html> 2 <html> 3 &

PHP和Jquery生成二维码,以及PHP生成电子名片

自从跳槽了,就没有发过博客了,很愧疚,我是自学的PHP,现在这家公司加上老板才12个人,我是典型的从分工明确的公司跳槽到小公司,深刻体会到了所谓'大公司'和'小公司'的区别,上一个公司,一个项目到我这里,静态页都是写好的,我只需要将数据动态加载就行了,但是目前这个公司,典型的一个人当几个人用,我刚去公司一个多月,直接让我做项目经理的工作,去甲方公司需求调研,然后自己开发,除开设计和切图,我基本上都参与.锻炼人说实话还是小公司较好,但是锻炼技术我觉得还是大公司较好,因为我在我上一家公司呆了3个月,

javascript生成二维码

摘要: 百度百科上是这样介绍二维码的:二维码(Quick Response Code),又称二维条码,它是用特定的几何图形按一定规律在平面(二维方向)上分布的黑白相间的图形,是所有信息数据的一把钥匙.在现代商业活动中,可实现的应用十分广泛,如:产品防伪/溯源.广告推送.网站链接.数据下载.商品交易.定位/导航.电子商务应用.车辆管理.信息传递等.如今智能手机扫一扫(简称313)功能的应用使得二维码更加普遍,随着国内物联网产业的蓬勃发展,更多的二维码技术应用解决方案被开发,二维码成为移动互联网入口

聊聊 Web 项目二维码生成的最佳姿势

在设计和实现的过程之后,你永远不知道部署上去的程序会已什么样的姿势运行. 本篇借一次生成二维码逻辑的不同实现,阐述 Web 项目中二维码生成的正确姿势. 文中如有批量,欢迎各位看客老爷拍砖.试运行前5天实现的逻辑是这样的: 客户 ajax 请求生成二维码,后端服务洞悉这一请求,生成二维码(可参照我博客:Google Zxing 二维码生成与解析). 并将二维码已用户 ID 进行命名存储在项目工程 /webcontent/qrcode/AAAAAAAAAAAAAA.png 当中. 使用用户 ID

Django 生成验证码或二维码 pillow模块

一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. ? PIL模块只支持到Python 2.7,许久没更新了,在python 3.* 版本上使用Pillow模块 ? 安装Pillow ? pip install pillow 二.pillow 基本使用 图像缩放 from PIL import Image # 当前路径打开一个jpg图像文件 img = Image.open('test.