eruda和vConsole是两个针对手机网页的前端开发者调试面板。让移动端网页开发调试变得更加简便,前端开发者都知道在PC端浏览器调试非常方便,可以随时查看调试信息等,而移动端就没这么方便了。因此eruda和vConsole也就孕育而生!eruda和vConsole是两个不同的产品,本文分别来介绍它们!
https://github.com/liriliri/eruda
https://github.com/Tencent/vConsole
Eruda 是一个专为手机网页前端设计的调试面板,类似 DevTools 的迷你版,其主要功能包括:捕获 console 日志、检查元素状态、捕获XHR请求、显示本地存储和 Cookie 信息等等。
通过CDN使用或者通过npm安装:
npm install eruda --save
在页面中加载脚本:
<script src="node_modules/eruda/eruda.min.js"></script> <script>eruda.init();</script>
Js文件对于移动端来说略重(gzip后大概100kb)。建议通过url参数来控制是否加载调试器,比如:
;(function () { var src = 'node_modules/eruda/eruda.min.js'; if (!/eruda=true/.test(window.location) && localStorage.getItem('active-eruda') != 'true') return; document.write('<scr' + 'ipt src="' + src + '"></scr' + 'ipt>'); document.write('<scr' + 'ipt>eruda.init();</scr' + 'ipt>'); })();
初始化时可以传入配置:
let el = document.createElement('div'); document.body.appendChild(el); eruda.init({ container: el, tool: ['console', 'elements'], useShadowDom: true });
插件
如果你想要自己编写插件,可以查看Github提供的教程
vConsole是由腾讯出品的一个轻量、可拓展、针对手机网页的前端开发者调试面板。
特性:
安装使用:
使用 npm 安装:
npm install vconsole
引入 dist/vconsole.min.js 到项目中:
<script src="path/to/vconsole.min.js"></script> <script> // 初始化 var vConsole = new VConsole(); console.log('Hello world'); </script>
对于 TypeScript,可引入 d.ts 文件:
import 'path/to/vconsole.min.d.ts';
PS:你还可以编写自己的插件,具体的详细文档可查阅Github
eruda和vConsole都是移动浏览器端网页调试的调试利器,更加方便准确的调试移动端,尤其是在APP内置的webView上加载我们的页面,想要查看手机浏览器信息是非常不容易的一件事情,有了它们,这些问题都将不复存在,有需要的朋友不要错过,Enjoy it!
知道早期的开发中,前后端是不分离的吗?那么后来它们又为什么要“分家”呢?分离后又有什么好处呢?
在前面一篇文章中,产品汪搞懂了前后端的工作分工。但是了解过程中,一个程序猿哥哥不经意间的一句话:“现在都是前后端分离的”,让小汪感到纳闷了,以前难道前后端不分离的么?于是小汪就继续深究起来。
在十几年前,前端的地位其实相对于后端并不那么强势,以下是一种经典的编程框架。
MVC:Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码。
有意思的事情出现了,内容是传给用户的,前端并不是直接接触用户的!前端只是提供了个样式模板,由后端把内容嵌入进入,再由后端直接传给用户。
这个时候,前端的编程要各种顺着后端哥哥的心意,而且前端要是出bug了,还得拉上后端一起研究,谁让你往我的模板里插了内容,出了幺蛾子你就得负责到底。
这个时期前后端高度耦合,从编程环境、到开发调试,都必须“在一起”,对于前端来说,其实自主权就不高,对后端来说,也要懂一些前端的知识。
于是前端程序猿对后端程序猿说,要不……你只管你的业务和数据,把结果给我,我来负责组装与呈现,这样大家都轻松些。于是前后端就分离了。
前后端分离带来的好处:
(1)编程更轻松
前后端分离之后,后端更专注于实现业务逻辑,形成一套标准化的“API接口”,例如需要创建商品,前端将商品信息传给后端创建商品的接口,后端就会完成商品的创建,并返回创建结果。如果前端给的创建商品信息缺了标题或者价格,后端还能返回创建失败的结果,并且提示缺失了哪些信息等。
前端除了负责界面样式和交互,还接管了获取和展示数据的权利,从此前端开发就自由多了,如果遇上bug,也能很轻松定位到是前端还是后台的事情。
(2)更高的可复用性
前后端分离,更是顺应了互联网发展多样化的潮流。后端通过提供一系列可以实现不同业务功能的接口,就可以让不同的前端、甚至外部系统过来对接。
这样方便了公司不断推广自己的产品,今天推出手机网页版、明天推出APP版、后天推出小程序版本等。而后端只需要提供一次接口,无需每增加一类客户端,后端就要新写过。
用户访问网站的过程小知识:
但是久而久之,前后端分离在web网页上也遇到了一些问题,最明显的是以下两点:
前后端分离为用户设备带来的影响,可以通过“换台新手机”、“换台新电脑”解决,但是搜索引擎爬不到网页的数据,对很多重度依赖搜索引擎流量的产品来讲,打击可就大了。
例如你需要找一个菜谱的时候,可能会在百度搜索“芥蓝怎么炒好吃?”,然后再从搜索结果里面访问各种美食网站。又或者你想去哪里玩,就会在百度搜索“土耳其旅游攻略”等等。对于这类重搜索引擎流量的网站而言,如果爬虫爬不到自己的数据,客流损失就比较严重。
考虑到上诉问题,聪明的网页前端程序猿就想到了一个新的办法,那我们先把后台的数据跟HTML内容整合好,再呈现给用户吧,得力于一种叫做Node.JS的、可以使用网页前端熟悉的JavaScript编程的工具,于是有了2.0版本的前后端分离。
前端程序猿跟服务器上的后端说,让一让,给我腾个地儿,然后把Node.JS放在了服务器上。等用户或者爬虫需要访问网页时,这个运行在服务器上的程序,先请求后端获得数据,并整合到HTML中,然后再返回给用户。
这样一来,用户的设备就少了JavaScript多次请求后端的烦恼,加快了运行速度,而爬虫也可以爬取到填充好内容的HTML网页了。
看到这里,小汪就想,这么一来,用户体验、爬虫的问题确实解决了,但是让本来本该发生在用户浏览器上的事情,都在服务器上做了嘛,如果访问量大的话,咱服务器的压力不就很大了?
前端程序猿哥哥呵呵一笑,其实不然,你想想,很多用户都是在访问同一个网页,看同一个商品、读同一篇文章,这些请求,要是服务器的前端就请求后台一次,然后把整合好的HTML保存起来,下次再有人再来访问,就把这个生成好的HTML展示给用户,这样不就服务器轻松了、用户访问也快了么!
小汪又问了,那咋们页面多了,不就要每个页面都保存一份HTML文件么,服务器储存的空间不就越来越少了么?
前端程序猿哥哥继续答道:久而久之,HTML文件在服务器积累多了,就把好久都没人访问的HTML删了,给其他新保存的HTML文件让位置,通过“缓存”技术,让服务器永葆活力。
小汪恍然大悟,原来这就是缓存啊!这下子,小汪终于明白了前后端分离是什么回事,以及为什么要前后端分离。
现在随着很多大型产品的形成、独立运行,新的“信息孤岛”正在形成。例如微信的公众号-小程序-朋友圈-圈子,然后通过搜一搜进行统一搜索,内部造血,而不再依赖传统的搜索引擎为他引流。
又例如淘宝,很多年前就拒绝了让百度爬虫爬取他的商品信息,只允许在淘宝内进行搜索。你在百度上搜不到淘宝的商品,在微信上也找不淘宝的任何信息、无法访问淘宝任何的链接,如果你要淘宝购物,就只能去淘宝网站或者下载淘宝APP。新的互联网格局的形成,肯定会进一步影响着前后端的关系。
本文由 @iCheer 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
坤 发自 凹非寺
量子位 报道 | 公众号 QbitAI
“你有苹果充电线吗?”“我用的是安卓。”充电器不一样,实在是不方便。
现在,欧洲要实现充电接口的统一了。
欧盟一项最新提案要求电子行业统一使用USB-C作为充电设备标准。目的是为了减少电子垃圾,给消费者带来更方便的使用体验。
欧盟委员会提出,USB-C将成为所有智能手机、平板电脑、相机、耳机、蓝牙音箱和游戏掌机的标准端口。
无论在家还是出门,都只需要一个充电器,简直不能更方便。
充电器统一标准的具体内容如下:
将USB-C作为充电器唯一接口类型。其他接口如Lightning等,将不被允许出现在欧洲市场上。
统一快速充电技术,确保充电速度相同。各商家的充电器参数需调整到统一水平,允许不同设备兼容。
充电器与电子设备分开销售,消费者自由选择是否需要购买充电器。
厂商必须明确提供电子设备的充电参数,由消费者决定是否需要更新充电器。
也就是说,欧盟不仅要让充电接口统一,快充标准也得统一。
来看看手机市场充电接口的现状:目前已经是苹果Lightning与安卓Type-C二分天下,相比濒临淘汰、只能单面插入的micro-USB接口,这两种类型使用起来更安全,不易损坏接头。
而可适配USB 3.0的Type-C端口,在传输速度和功率方面,也要比USB 2.0时代的Lightning接口强大得多。
安卓宇宙的参差
安卓和苹果充电器不兼容,那插口类型相同的各品牌安卓充电器,能不能通用呢?
虽然都叫Type-C,但也是有功率大小之分的。各家手机厂商都发展了自己的独特快充技术,50W以上快充功率比比皆是。
小米达到了50W功率,至尊纪念版则一路飙升到120W,Vivo、OPPO也分别实现了120W、125W快充技术。只要充电头和电子设备的芯片互相支持,协议达成就可以实现快充。
那么不同快充功率的充电器可以混用吗?可以,但没必要。无法匹配的设备,快充技术将无法体现出价值。
现在,欧盟不光要统一接口类型为Type-C,还要求统一快充标准,大家都是充电器,还分什么高低贵贱。
这种政策当然是消费者最喜闻乐见的,不仅不用再为满满一抽屉的杂乱数据线头疼,还不用再去买第二个充电器了。
但是故事的主角——各大电子厂商才不会乖乖照做。
厂商为什么不会配合?还不是赚不了这部分利润了。
安卓内部各自开发快充技术,就是为了做到隐形捆绑销售。既然都要买配件,为什么不能是买自己家的?为了让“原装”更有分量,只能在充电速率技术壁垒上下点功夫了。
虽然在十年前欧盟的倡议下,行业内达成了一致,充电器类型从30个减少到3个,但大家还是得各自把技术壁垒建立起来。
技术壁垒建在哪?接口上加个独家认证还不是分分钟的事。
而苹果与欧盟通用充电器标准的拉锯战也已经持续了十多年,欧盟这次的提案,直接将事态带入到了白热化阶段。
在欧盟倡议使用统一micro-USB标准阶段,苹果依然自顾自开发出了Lightning接口,并以附赠micro-Lightning转接头的方式无视了这一规定。
随后,欧盟再次将统一充电标准提上日程,去年进行了欧洲议会投票,以582 : 40的票数通过决议。
苹果立刻发表声明,称欧盟这项举动会“扼杀创新”。并委托哥本哈根经济学专家做出“充电器改革一点都不环保”的研究结论。
为了证明保留Lightning也可以环保,苹果从iPhone 12开始,手机与充电器分开销售,声称这一措施节约了861,000 吨金属资源。但是由于苹果的独家芯片,消费者还得花高价买。
但是Lightning不支持更高传输速率和更高充电功率。
苹果只能在最新Mac笔记本和iPad中使用USB-C接口,但是iPhone产品却依然坚持Lightning接口。
对于广受质疑的“欧盟立法是在针对苹果”问题,欧盟行业负责人表明:“我们不是在针对苹果,我们没有在针对任何人。”
同时,欧盟也表示:“这项提案考虑的情况是,未来苹果已经在其他设备上实现了USB-C兼容。”
至于苹果接下来会怎么做,还挺让人期待的。
参考链接:
https://www.engadget.com/europe-proposes-usb-c-as-a-common-charger-for-electronic-devices-131605815.html
https://ec.europa.eu/commission/presscorner/detail/en/ip_21_4613
https://www.engadget.com/2020-01-23-apple-rejects-eu-call-for-common-phone-charger.html
https://www.bbc.com/news/technology-58665809
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
*请认真填写需求信息,我们会在24小时内与您取得联系。