Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 丁香狠狠色婷婷久久综合,两性视频免费看20分钟,免费看一区二区三区

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          JavaScript奇淫技巧:清理無效的垃圾代碼

          JavaScript奇淫技巧:清理無效的垃圾代碼

          avaScript奇淫技巧:清理無效的垃圾代碼

          在編程過程中,難免會(huì)產(chǎn)生一些無效的、冗長(zhǎng)的長(zhǎng)碼。

          很常見的是:定義了某些變量,但未使用,或者是曾使用過,但在修改代碼后不再使用。那么,它就成了無用的垃圾代碼,而它占用著代碼空間,使代碼龐大、影響代碼閱讀。

          在較大的工程中,往往有不少這種代碼。

          本文,演示一種方法,自動(dòng)化地去除無效的變量。

          例程:

          添加圖片注釋,不超過 140 字(可選)

          以上代碼中,變量b是無用的。

          通過編程,實(shí)現(xiàn)去除,完整代碼如下:

          ?

          添加圖片注釋,不超過 140 字(可選)

          其原理是:將代碼轉(zhuǎn)化為AST(抽象語法樹),從語法樹中遍歷變量定義,然后檢測(cè)變量是否被引用或修改,如果變量既未引用、也未被修改過。則刪除該變量。最后,再把AST重新生成為JS代碼。

          這段代碼在NodeJS環(huán)境中使用,運(yùn)行效果:

          ?

          添加圖片注釋,不超過 140 字(可選)

          從運(yùn)行效果可以看到,刪除了未使用的變量b,并重新生成了代碼。

          這個(gè)操作,可以精簡(jiǎn)、優(yōu)化JS代碼。

          與這波操作相反的,有時(shí),為了保護(hù)JS代碼,防止代碼被分析、復(fù)制、盜用;防止他人理解代碼;或因小游戲過審等需要,而對(duì)JS代碼進(jìn)行混淆加密。

          在JS代碼混淆加密時(shí),經(jīng)常會(huì)有“僵尸代碼植入操作”,會(huì)插入一些無用的變量和函數(shù)等,比如JShaman就具有這項(xiàng)功能。下面,再測(cè)試一下,用JShaman插入的JS代碼,是否能用這種方式去除。

          例程如下:

          ?

          添加圖片注釋,不超過 140 字(可選)

          在配置中,只選擇“僵尸代碼植入”。JShaman有很多JS加密選項(xiàng),本文只測(cè)試是否能去除插入的JS代碼,所以,只啟用這一項(xiàng):

          ?

          添加圖片注釋,不超過 140 字(可選)

          用JShaman混淆加密后,得到代碼:

          ?

          添加圖片注釋,不超過 140 字(可選)

          代碼中的紅色標(biāo)識(shí)處,都是隨機(jī)插入的僵尸代碼。

          把這段代碼,放到剛剛的程序中,并運(yùn)行:

          ?

          添加圖片注釋,不超過 140 字(可選)

          從運(yùn)行結(jié)果看,并未能去除被JShaman插入的僵尸代碼,原因是因?yàn)榻┦兞恳灿幸煤托薷摹?/p>

          本文僅演示了無效變量的去除,同理,還可以用類似的方法去除無效的函數(shù)。

          最后,附上本文使用的代碼:

          //自動(dòng)去除無效變量

          //Auther: JShaman.com w2sft

          var parser=require("@babel/parser");

          var traverse=require("@babel/traverse").default;

          var generator=require("@babel/generator").default;


          var jscode=`

          function get_copyright() {

          var _0x4d=1 + 5;

          var domain="jshaman.com";

          _0x4d="apib";

          var _0x05f;

          var from_year=2017;

          _0x05f=9;

          var _0x;

          var copyright="(c)" + from_year + "-" + new Date().getFullYear() + "," + domain;

          _0x=8 + 2;

          return copyright;

          }

          console.log(get_copyright());

          `;


          var ast=parser.parse(jscode);

          var visitor={

          VariableDeclarator(path){

          var binding=path.scope.getBinding(path.node.id.name);

          //變量被修改過

          if (!binding || binding.constantViolations.length > 0) {

          return;

          }


          //變量沒有被使用過

          if (binding.referencePaths.length==0) {

          console.log(" 已刪除變量:",path.node.id.name);

          console.log();

          們經(jīng)常在檢測(cè)網(wǎng)站加載速度的過程中,遇到了以下問題:從樣式表中刪除無效規(guī)則,并延遲不用于首屏內(nèi)容的CSS加載,以減少網(wǎng)絡(luò)活動(dòng)消耗的不必要字節(jié)。

          盡管看起來CSS文件的大小只有幾KB甚至沒有1 MB,但不要僅僅因?yàn)槲募笮《械嚼Щ蟆K羞@些事情加起來可能會(huì)使您的網(wǎng)站變慢,因此建議從樣式表中刪除未使用的CSS和無效規(guī)則,使樣式表文件更精簡(jiǎn),最小化并完善它,以便在速度較慢的連接上更快地加載。速度更快的網(wǎng)站更有可能獲得更高的排名,因此,您應(yīng)該非常非常認(rèn)真地考慮網(wǎng)站的加載時(shí)間。

          什么是未使用的CSS規(guī)則?

          未使用的CSS或“無效規(guī)則”不過是未在您的網(wǎng)頁上使用的CSS代碼。如果刪除此代碼,它將使CSS文件更精簡(jiǎn),更輕便,并在某種程度上幫助縮短頁面的加載時(shí)間。

          讓我們舉一個(gè)例子來理解這一點(diǎn)。

          假設(shè)您的樣式表中包含以下CSS代碼

          .red_highlight_box {
            padding: 10px;
            background-color: black;
            color: white;
            cursor: pointer;
            max-width: 85%;
            margin: 0 auto;
            border-bottom: 2px solid white;
            //border-radius: 10px;
            font-family: 'Secular One', Arial, Helvetica, sans-serif; 
          }

          上面的代碼用于類名“ red_highlight_box”。您可能不會(huì)在網(wǎng)站的主題中使用此類,并且網(wǎng)站上任何現(xiàn)有的頁面也不會(huì)使用該類。

          在這種情況下,上面的代碼是未使用的CSS或無效規(guī)則或“膨脹代碼”。它什么也沒做,只是減慢了網(wǎng)站速度,您絕對(duì)應(yīng)該考慮一勞永逸地將其從樣式表文件中刪除。

          請(qǐng)注意

          注釋掉未使用的CSS與完全刪除它是不同的。當(dāng)您注釋掉未使用的CSS代碼時(shí),該代碼仍然存在,并增加了文件大小。未使用的css清理的目標(biāo)是減小CSS文件的文件大小,以便更快地加載,呈現(xiàn)在用戶瀏覽器中。因此,不建議注釋掉不必要的CSS代碼,您應(yīng)該從CSS文件中永久刪除多余的代碼。

          想象一下,如果您從網(wǎng)站的每個(gè)頁面調(diào)用了5個(gè)樣式表,并且這些樣式表中的每一個(gè)都充滿了無效規(guī)則和代碼,而這些規(guī)則和代碼根本沒有在您網(wǎng)站的HTML中使用。如果您使用廉價(jià)的模板網(wǎng)站,這是很正常的,因?yàn)镃SS包含主題“可能”需要的所有內(nèi)容。HTML模板的開發(fā)人員已經(jīng)考慮了所有可能性,小部件,部分,字體,樣式,背景色,因此編寫了滿足所有可能性的代碼。

          但實(shí)際上,您不會(huì)使用所有可能性。實(shí)踐表明,在CSS文件中使用的所有可能性中,您將使用的可能性不到30%,因此,樣式表中會(huì)有很多未使用的CSS規(guī)則,這將不必要地增加網(wǎng)站頁面的加載時(shí)間。

          使用Unused-CSS.Com從StyleSheets中刪除未使用的CSS

          有許多工具可用于合并CSS文件,最小化它們或從樣式表中刪除無效規(guī)則。但我強(qiáng)烈建議您使用Unused-Css.Com。實(shí)際上,它是我們刪除多余CSS代碼的唯一工具,而且至今還沒有任何差錯(cuò)。我們已經(jīng)在多個(gè)網(wǎng)站上對(duì)其進(jìn)行了測(cè)試,并且得到的輸出CSS文件從未出錯(cuò)過。

          我們也嘗試過Purify CSS,但是對(duì)于包含許多CSS代碼的較大站點(diǎn),輸出的CSS文件是不正確的。一些CSS代碼會(huì)從輸出文件中刪除,這些代碼正在其他頁面上使用。

          進(jìn)行此過程的最佳方法是不要從網(wǎng)站的樣式表文件中手動(dòng)刪除未使用的CSS。因?yàn)椋?dāng)您手動(dòng)進(jìn)行操作時(shí),總是存在人為錯(cuò)誤的可能性。手動(dòng)檢查每個(gè)類并查找在哪個(gè)頁面或場(chǎng)景中使用它們也是非常費(fèi)力。因此,我們就不要考慮手動(dòng)刪除多余的CSS代碼了。

          您需要一個(gè)在線工具,該工具將對(duì)整個(gè)網(wǎng)站進(jìn)行爬網(wǎng),考慮所有頁面并僅提取每個(gè)頁面中使用的CSS。一旦在整個(gè)站點(diǎn)的每個(gè)頁面上提取了可用的CSS,它將對(duì)其進(jìn)行組合,并為您提供最終的輸出文件,即干凈的CSS-避免腫的代碼或無效規(guī)則。

          這是您的操作方式。

          1. 在Unused-css.com上注冊(cè)一個(gè)免費(fèi)帳戶。這項(xiàng)免費(fèi)計(jì)劃可讓您僅清潔一個(gè)網(wǎng)站(最多100頁)的CSS。
          2. 添加您的網(wǎng)站并設(shè)置掃描。他們的抓取工具將抓取您的整個(gè)網(wǎng)站和所有頁面,因此請(qǐng)確保您的robots.txt或其他腳本不會(huì)以任何方式阻止抓取工具。
          3. 當(dāng)他們的抓取工具完成對(duì)所有網(wǎng)站的抓取并優(yōu)化了整個(gè)網(wǎng)站中使用的所有CSS文件后,您很快就會(huì)收到一封電子郵件。不用擔(dān)心,所有這些文件都不會(huì)合并在一起,您可以根據(jù)自己的需要有選擇地下載每個(gè)優(yōu)化的CSS文件,然后決定將其與另一個(gè)文件合并。
          4. 登錄到您的未使用CSS帳戶,選擇項(xiàng)目,您將在左側(cè)欄中看到所有CSS文件。首先,在左側(cè)邊欄中,選擇網(wǎng)站主題或HTML模板正在使用的CSS文件(該文件應(yīng)位于左側(cè)邊欄底部的下方)。接下來,單擊“下載CSS”,您將獲得縮小的CSS文件,其中沒有腫的代碼或未使用的代碼。
          5. 將此新的CSS文件上傳到您網(wǎng)站的主題目錄中。請(qǐng)勿刪除原始CSS文件,而是上傳此新CSS文件,然后從您的網(wǎng)站頭部調(diào)用新的優(yōu)化CSS文件。完成后,轉(zhuǎn)到Google頁面速度分析,然后再次運(yùn)行診斷。在您的網(wǎng)站上使用隨機(jī)頁面,因?yàn)閁nused-CSS.com掃描了整個(gè)網(wǎng)站并將所有正在使用的CSS類合并到一個(gè)文件中,所以完全沒問題。您應(yīng)該會(huì)看到警告– 刪除未使用的CSS并從樣式表中刪除無效規(guī)則,這些內(nèi)容不再顯示在Google頁面速度分析的“機(jī)會(huì)”部分下。

          當(dāng)然,您不必使用付費(fèi)工具即可完成此操作。您可以使用Chrome開發(fā)人員工具并手動(dòng)完成操作,也可以推遲未使用的CSS。

          如果我的網(wǎng)站的主題更新怎么辦?我是否必須再次刪除未使用的CSS?

          是的,如果您使用免費(fèi)的模板,則必須一次又一次地執(zhí)行此操作。這是因?yàn)楫?dāng)您的主題收到新的更新時(shí),它將覆蓋您的style.css文件中的代碼。

          這樣,當(dāng)主題有新更新時(shí),它將不會(huì)覆蓋沒有膨脹代碼的優(yōu)化CSS文件。

          我們的建議是不要使用免費(fèi)的模板。推薦您使用定制網(wǎng)站,這樣您就知道所有內(nèi)容如何適合以及從哪個(gè)部分調(diào)用了哪些文件。

          個(gè) CSS3 loading 動(dòng)畫庫,簡(jiǎn)單易用,動(dòng)畫流暢,無論是學(xué)習(xí)還是使用,都很不錯(cuò)。

          關(guān)于 Loaders.css

          Loaders.css 是一個(gè)性能出色的 web 前端代碼庫,或者叫 CSS 庫,因?yàn)樗耆珱]有用到一行 js 代碼或者圖片,僅僅利用純 CSS 就實(shí)現(xiàn)多種樣式的 loading 動(dòng)畫,運(yùn)行流暢絲滑,輕量小巧,性能優(yōu)秀。

          loaders-css 官網(wǎng)

          Loaders.css 技術(shù)特性

          • 純 CSS 實(shí)現(xiàn),沒有多余的代碼,唯一的依賴就是瀏覽器,非常輕量
          • 性能出眾,相比于用 javascript 計(jì)算繪圖和布局來實(shí)現(xiàn) loading,Loaders.css 使用的是 CSS3 的動(dòng)畫屬性和 transform 變形,能極大地利用電腦或手機(jī)的圖形硬件性能,所以極為流暢
          • 提供將近 30 個(gè)不同樣式的 loading 動(dòng)畫,復(fù)制粘貼拿來就可以用

          loading 效果預(yù)覽

          多年使用體驗(yàn)和感受

          loading 動(dòng)畫是前端開發(fā)收到的頻次很高的需求,特別是前后端分離的開發(fā)模式,數(shù)據(jù)都是異步加載的。以前做 loading 都是一張 菊花.gif 走天下, 但現(xiàn)在產(chǎn)品開發(fā)要求變高,咱們的追求也變高了,特別是移動(dòng)端,顯示加載動(dòng)畫前還得加載一個(gè)動(dòng)圖,這早就 out 了。

          直到發(fā)現(xiàn)了 Loaders.css,為這些年來上千次的 loading 實(shí)現(xiàn)節(jié)省了大量的時(shí)間和精力。雖然官方支持 npm 安裝和 jQuery 的方式引入,但我更建議面對(duì)要求不高的場(chǎng)景,直接復(fù)制對(duì)應(yīng)的動(dòng)畫樣式即可,不需要引入 CSS,這是極致的按需取用。

          使用開發(fā)者工具查看代碼

          面對(duì)外觀要求的加載場(chǎng)景,我們可以修改 CSS 屬性來達(dá)到精準(zhǔn)定制的要求來符合產(chǎn)品的調(diào)性,無論是移動(dòng)端還是 pc 端都非常好用,而且也是一個(gè)很好的 CSS3 動(dòng)畫學(xué)習(xí)研究對(duì)象。

          得益于 Loaders.css 毫無依賴\高性能\輕量化\免費(fèi)開源的特點(diǎn),開發(fā)者們又陸續(xù)根據(jù) Loaders.css 構(gòu)建了用于其他技術(shù)平臺(tái)甚至是 iOS \ android 原生的動(dòng)畫庫:

          • React 版本:react-loaders
          • Vue 版本:vue-loaders
          • Angular 版本:Masadow
          • ember 版本:ember-cli-loaders
          • iOS 版本:DGActivityIndicatorView
          • Android 版本:Loaders.CSS-Android-App

          免費(fèi)開源說明

          Loaders.css 是一個(gè)免費(fèi)開源的前端 CSS 動(dòng)畫庫,基于 MIT 開源協(xié)議托管在 Github 上,任何人和商業(yè)機(jī)構(gòu)都可以免費(fèi)下載使用。

          Loaders.css 官網(wǎng)在國(guó)內(nèi)訪問不太穩(wěn)定,經(jīng)常有打不開的情況,大家也可以直接訪問 Loaders.css 的 Github 主頁獲取源碼。

          關(guān)注我,持續(xù)分享高質(zhì)量的免費(fèi)開源、免費(fèi)商用的資源。

          ↓↓點(diǎn)擊查看本次分享的網(wǎng)址。

          Loaders.css - 純 CSS 打造的免費(fèi)開源加載動(dòng)畫,絲滑流暢高性能!|那些免費(fèi)的磚


          主站蜘蛛池模板: 一本一道波多野结衣AV一区| 精品国产毛片一区二区无码| 日韩中文字幕一区| 亚洲第一区香蕉_国产a| 任你躁国语自产一区在| 久久成人国产精品一区二区| 狠狠综合久久av一区二区| 精品无人区一区二区三区| 亚洲欧洲一区二区三区| 国产一区二区三区露脸| 国产日韩一区二区三区在线播放| 日韩亚洲一区二区三区| 国产无套精品一区二区| 亚洲一区AV无码少妇电影☆| 精品亚洲福利一区二区| 蜜臀Av午夜一区二区三区| 久久99久久无码毛片一区二区| 黑巨人与欧美精品一区| 亚洲制服丝袜一区二区三区| 视频一区在线播放| 国产在线观看91精品一区| 国产乱码精品一区二区三区四川 | 亚洲伦理一区二区| 中文字幕在线观看一区二区三区| 成人丝袜激情一区二区| 国产精品一区二区电影| 视频一区二区精品的福利| 日本一区二区在线不卡| 麻豆视传媒一区二区三区| 国产成人高清亚洲一区久久| 乱中年女人伦av一区二区| 国产成人AV一区二区三区无码| 日本精品啪啪一区二区三区| 亚洲日本久久一区二区va| 无码人妻精品一区二区三区蜜桃| 日韩精品一区二三区中文 | 精品不卡一区中文字幕| 中文字幕亚洲乱码熟女一区二区| 91一区二区在线观看精品| 亚洲AV无码一区二区三区鸳鸯影院| 国产一区二区在线观看|