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小時內與您取得聯系。