摘要:那么使用簡單的文本和符號,就夠自己拼湊出命令行的效果下面例子文件已上傳當然,進度條的效果可以根據需要自己設計啦,我這里只是給大家一個參考。
1. 場景導入
當我們對大量文件進行批量處理的時候(例如:上傳/下載、保存、編譯等),常常希望知道當前進展如何,或者失敗(成功)的任務有多少;當我們的代碼或程序已經發布,用戶在執行安裝的過程中,一個合適的(終端/命令行)進度條可以準確反映安裝的步驟和進程,提升程序的可用性,一定程度緩解用戶在等待中的煩惱……
2. 基本原理首先,在終端打印出文本是件比較容易的事情。
那么使用簡單的文本和符號,就夠自己拼湊出命令行的效果(下面例子):
文件已上傳: 43.60% █████████████████████????????????????????????????? 150/344
當然,進度條的效果可以根據需要自己設計啦,我這里只是給大家一個參考。
這里,我將打印命令行的方法構造成一個工具模塊 progress-bar.js,具體實現如下 :-)
// 這里用到一個很實用的 npm 模塊,用以在同一行打印文本 var slog = require("single-line-log").stdout; // 封裝的 ProgressBar 工具 function ProgressBar(description, bar_length){ // 兩個基本參數(屬性) this.description = description || "Progress"; // 命令行開頭的文字信息 this.length = bar_length || 25; // 進度條的長度(單位:字符),默認設為 25 // 刷新進度條圖案、文字的方法 this.render = function (opts){ var percent = (opts.completed / opts.total).toFixed(4); // 計算進度(子任務的 完成數 除以 總數) var cell_num = Math.floor(percent * this.length); // 計算需要多少個 █ 符號來拼湊圖案 // 拼接黑色條 var cell = ""; for (var i=0;i3. Run 起來 基于上面的實現,先說一下這個 progress-bar.js 的用法:
// 引入工具模塊 var ProgressBar = require("./progress_bar"); // 初始化一個進度條長度為 50 的 ProgressBar 實例 var pb = new ProgressBar("下載進度", 50); // 這里只是一個 pb 的使用示例,不包含任何功能 var num = 0, total = 200; function downloading() { if (num <= total) { // 更新進度條 pb.render({ completed: num, total: total }); num++; setTimeout(function (){ downloading(); }, 500) } } downloading();run 一下上面的代碼,執行效果如下:
原創文章,轉載請注明出處
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82618.html
摘要:引子很多使用開發的工具都會提供一個命令行操作界面,這些工具在執行的過程中會實時更新執行進度或數據的下載解壓縮進度等,例如,這些信息會再終端的同一行的同一位置顯示,而不是一行一行逐次打印顯示那么其是怎么實現的有沒有相應地模塊提供這個功能呢嗯, 引子 很多使用nodejs開發的工具都會提供一個命令行操作界面(CLI),這些工具在執行的過程中會實時更新執行進度或數據的下載解壓縮進度等,例如1...
摘要:編寫一個簡單的程序,使其能接收一個或者多個命令行參數,并且在終端標準輸出中打印出這些參數的總和。處理所有可能發生的錯誤,并把它們傳遞給回調函數。編寫一個程序來發起一個請求,所請求的為命令行參數的第一個。 learnyounode 13課總結(上) 最近對nodejs比較感興趣,但是苦于無法下手,直接啃文檔又覺得十分生硬無趣。 幸好有熱心網友推薦了learnyounode這個好玩的入...
摘要:把文件上傳路徑指定到然后用當前日期和文件名命名上傳過來的文件。后端利用建立服務器,利用中間件指定文件路徑。利用這個前端和后端技術,我們基本上就可以做出一個圖片上傳存儲的基本網站核心。 前幾天看了騰訊云社區的一個文件上傳的文章文件上傳那些事兒,大體上講了以下h5中圖片上傳的幾個核心原理,但是沒有后端接受的服務器代碼,沒法做測試。也沒有具體的一個實例都是一些基本的原理片段,并且ui界面也不...
摘要:前言本篇主要介紹基本數據類型,以文本進度條為例,介紹庫的使用。 前言 本篇主要介紹基本數據類型,以文本進度條為例,介紹time庫的使用。 并在最后對蟒蛇繪制的代碼進...
摘要:起因前幾天網易相冊宣布即將停止運營,自己有幾千張照片需要下載,官方給的批量下載工具已經無法打開下載頁面。無奈只能自己做一個。如果感動了你,可以在下面小額打賞,對我的支持和鼓勵。 起因:前幾天網易相冊宣布即將停止運營,自己有幾千張照片需要下載,官方給的批量下載工具已經無法打開下載頁面。無奈只能自己做一個。 該教程專為小白用戶寫的,大神請直接移步github:https://github....
閱讀 2397·2021-10-09 09:44
閱讀 2132·2021-10-08 10:05
閱讀 3424·2021-07-26 23:38
閱讀 2991·2019-08-28 18:16
閱讀 812·2019-08-26 11:55
閱讀 1821·2019-08-23 18:29
閱讀 2035·2019-08-23 18:05
閱讀 1364·2019-08-23 17:02