js shell 獲取文件的創(chuàng)建時(shí)間

純前端方式實(shí)現(xiàn)手機(jī)app里顯示當(dāng)前js代碼的版本號(hào)铺根。

思路是:通過shell腳本獲取js文件的創(chuàng)建時(shí)間,以此來標(biāo)記版本號(hào),無需客戶端和服務(wù)端的接口雷客,純前端實(shí)現(xiàn)。

難點(diǎn)是:原生js無法獲取文件的創(chuàng)建時(shí)間桥狡,往往需要服務(wù)端和客戶端協(xié)助實(shí)現(xiàn)搅裙。

解決方案:前端js代碼中預(yù)定義一個(gè)變量存儲(chǔ)版本號(hào)(默認(rèn)值),在js代碼混淆壓縮時(shí)裹芝,使用shell腳本獲取時(shí)間部逮,給js預(yù)定義的那個(gè)版本號(hào)的變量重新賦值。在前端代碼中呈現(xiàn)此變量的值嫂易,即可以實(shí)現(xiàn)在手機(jī)app里顯示當(dāng)前js代碼的版本號(hào)兄朋。

先準(zhǔn)備原料,準(zhǔn)備一個(gè)記錄點(diǎn)擊次數(shù)的變量和一個(gè)顯示版本號(hào)的方法:

// 記錄被點(diǎn)擊的次數(shù)
var copyrightClickTimes = 0;

// 顯示前端代碼的版本號(hào)
function showVersion(version) {
    $(".desc").prepend('<p class="desc" id="version">當(dāng)前版本:' + version + '</p>');
}

在需要觸發(fā)顯示邏輯的控件的onclick方法怜械,實(shí)現(xiàn)點(diǎn)擊超過一定次數(shù)之后顯示版本號(hào)的邏輯:

// 如果已經(jīng)顯示版本號(hào)颅和,就不再顯示
if (document.getElementById("version")) {
    return;
}

copyrightClickTimes++;

// 如果點(diǎn)擊次數(shù)大于2次傅事,則顯示版本號(hào)
if (copyrightClickTimes > 2) {
    showVersion(version);
    copyrightClickTimes= 0;
}

網(wǎng)上找的一段日期格式化的擴(kuò)展代碼:

Date.prototype.Format = function (fmt) {
    var o = {
        "M+": this.getMonth() + 1, // 月份
        "d+": this.getDate(), // 日
        "h+": this.getHours(), // 小時(shí)
        "m+": this.getMinutes(), // 分
        "s+": this.getSeconds(), // 秒
        "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
        "S": this.getMilliseconds() // 毫秒
    };
    if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
};

經(jīng)過擴(kuò)展的Date就可以格式化成想要的形式,設(shè)置版本號(hào)version的默認(rèn)值峡扩,取document.lastModified的值格式化:

var version = new Date(document.lastModified).Format("yyyyMMddhhmmss");

在js代碼混淆壓縮時(shí)蹭越,shell腳本中加入獲取當(dāng)前時(shí)間賦值給js預(yù)定義的那個(gè)變量version

# 當(dāng)前時(shí)間設(shè)置為版本號(hào)
currentTime=`date +%Y%m%d%H%M%S`
echo current_version = $currentTime
echo version = $currentTime';' >> ./js/test.js

混淆壓縮后的代碼類似如下,其中fe就是之前預(yù)定義的變量version

if(document.getElementById("version"))return;we++,we>2&&(v(fe),we=0)}
var fe=new Date(document.lastModified).Format("yyyyMMddhhmmss");
fe=20171018162538;

fe=20171018162538;就是shell腳本在js文件后面追加的時(shí)間教届。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末响鹃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子案训,更是在濱河造成了極大的恐慌茴迁,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件萤衰,死亡現(xiàn)場(chǎng)離奇詭異堕义,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脆栋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門倦卖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椿争,你說我怎么就攤上這事怕膛。” “怎么了秦踪?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵褐捻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我椅邓,道長(zhǎng)柠逞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任景馁,我火速辦了婚禮板壮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘合住。我一直安慰自己绰精,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布透葛。 她就那樣靜靜地躺著笨使,像睡著了一般。 火紅的嫁衣襯著肌膚如雪僚害。 梳的紋絲不亂的頭發(fā)上硫椰,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼最爬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛门岔,可吹牛的內(nèi)容都是我干的爱致。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼寒随,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼糠悯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妻往,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤互艾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后讯泣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體纫普,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年好渠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了昨稼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拳锚,死狀恐怖假栓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情霍掺,我是刑警寧澤匾荆,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站杆烁,受9級(jí)特大地震影響牙丽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兔魂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一剩岳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧入热,春花似錦拍棕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尚困,卻和暖如春蠢箩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工谬泌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滔韵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓掌实,卻偏偏與公主長(zhǎng)得像陪蜻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贱鼻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,380評(píng)論 0 5
  • 概要 64學(xué)時(shí) 3.5學(xué)分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,182評(píng)論 0 3
  • 第 2 章 SHELL 基礎(chǔ)知識(shí)2.1 shell腳本我們?cè)谏厦婧?jiǎn)單介紹了一下什么是shell腳本宴卖,現(xiàn)在我們來進(jìn)一...
    LiWei_9e4b閱讀 1,569評(píng)論 0 0
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,844評(píng)論 0 5
  • 1邻悬、 友情症昏,是一杯淡淡的溫開水,不甜蜜父丰、也不苦澀肝谭、卻給人淡淡的最滋潤(rùn)的心? 2、我從沒看過自己的影子蛾扇,匆忙的度過不...
    肉食動(dòng)物520520閱讀 231評(píng)論 0 0