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 国产精品国产亚洲精品看不卡,最近中文字幕视频国语中文字幕,亚洲欧美中文字幕

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

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

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

          JavaScript 根據(jù)指定的字符串格式格式化日期

          JavaScript中,您可以使用Date對(duì)象和一些內(nèi)置方法來根據(jù)指定的字符串格式格式化日期。

          以下是一個(gè)示例代碼,演示如何在JavaScript中進(jìn)行日期格式化:

          // 根據(jù)指定的字符串格式格式化日期
          function formatDate(date, format) {
            const year = date.getFullYear();
            const month = String(date.getMonth() + 1).padStart(2, '0');
            const day = String(date.getDate()).padStart(2, '0');
            const hours = String(date.getHours()).padStart(2, '0');
            const minutes = String(date.getMinutes()).padStart(2, '0');
            const seconds = String(date.getSeconds()).padStart(2, '0');
          
            format = format.replace('YYYY', year);
            format = format.replace('MM', month);
            format = format.replace('DD', day);
            format = format.replace('HH', hours);
            format = format.replace('mm', minutes);
            format = format.replace('ss', seconds);
          
            return format;
          }
          
          // 使用樣例
          const date = new Date();
          const formattedDate = formatDate(date, 'YYYY-MM-DD HH:mm:ss');
          console.log(formattedDate);
          

          在這個(gè)示例中,formatDate函數(shù)接受一個(gè)Date對(duì)象和一個(gè)格式字符串作為參數(shù)。

          函數(shù)內(nèi)部使用Date對(duì)象的方法獲取年、月、日、小時(shí)、分鐘和秒,并使用padStart方法將它們轉(zhuǎn)換為兩位數(shù)的字符串。

          然后,函數(shù)使用replace方法將格式字符串中的占位符替換為相應(yīng)的日期和時(shí)間值。

          您可以根據(jù)需要自定義格式字符串。

          例如,'YYYY-MM-DD'表示年、月、日的格式,'HH:mm:ss'表示小時(shí)、分鐘、秒的格式。

          希望這個(gè)示例對(duì)您有幫助!

          要:在本文中,將重點(diǎn)關(guān)注網(wǎng)頁(yè)的初始渲染,即它從解析 HTML 開始。 我將探索可能導(dǎo)致高渲染時(shí)間的問題,以及如何解決它們。

          本文分享自華為云社區(qū)《頁(yè)面首屏渲染性能指南-云社區(qū)-華為云》,作者:Ocean2022。

          我們知道渲染頁(yè)面是一個(gè)將服務(wù)器的響應(yīng)內(nèi)容翻譯成圖片的過程。但是,如果你頁(yè)面的渲染性能比較糟糕的話,可能會(huì)帶來相對(duì)較高的跳出率。

          在本文中,我將重點(diǎn)關(guān)注網(wǎng)頁(yè)的初始渲染,即它從解析 HTML 開始。 我將探索可能導(dǎo)致高渲染時(shí)間的問題以及如何解決它們。

          關(guān)鍵渲染路徑(CRP)

          關(guān)鍵渲染路徑 (CRP) 是瀏覽器將代碼轉(zhuǎn)換為屏幕上可顯示像素的過程。 它有幾個(gè)階段,其中一些可以并行執(zhí)行以節(jié)省時(shí)間,但有些部分必須依次完成。 如下圖所示:

          首先,一旦瀏覽器得到響應(yīng),它就會(huì)開始解析它。 當(dāng)它遇到依賴項(xiàng)時(shí),它會(huì)嘗試下載它。 如果它是一個(gè)樣式表文件,瀏覽器必須在渲染頁(yè)面之前完全解析它,這就是為什么 CSS 會(huì)阻塞渲染的原因。

          如果是腳本,瀏覽器必須:停止解析,下載腳本,然后運(yùn)行。 只有在那之后它才能繼續(xù)解析,因?yàn)?JavaScript 程序可以改變網(wǎng)頁(yè)的內(nèi)容(尤其是 HTML)。 這就是為什么 JS 會(huì)阻塞解析的原因。

          完成所有解析后,瀏覽器將構(gòu)建文檔對(duì)象模型 (DOM) 和級(jí)聯(lián)樣式表對(duì)象模型 (CSSOM)。 將它們組合在一起得到渲染樹。 頁(yè)面的不顯示部分不會(huì)進(jìn)入渲染樹,因?yàn)樗话L制頁(yè)面所需的數(shù)據(jù)。

          倒數(shù)第二步是將渲染樹進(jìn)行布局, 這個(gè)階段也稱為回流:就是計(jì)算每個(gè)渲染樹節(jié)點(diǎn)的每個(gè)位置及其大小的地方。

          最后一步是繪制。 它會(huì)根據(jù)瀏覽器在前一階段計(jì)算得到的數(shù)據(jù)對(duì)像素進(jìn)行著色。

          優(yōu)化相關(guān)結(jié)論

          因此,根據(jù)這一過程,我們?cè)趦?yōu)化性能方面,得出了一些結(jié)論。如果你要提升頁(yè)面初始化渲染的性能,你需要:

          • 減少傳輸?shù)臄?shù)據(jù)量
          • 減少瀏覽器必須下載的資源數(shù)量(尤其是阻塞的資源)
          • 減小 CRP 的長(zhǎng)度

          同時(shí),我們會(huì)根據(jù)下面 3 個(gè)指標(biāo)來衡量?jī)?yōu)化的效率:

          • FP(First Paint)
          • FCP(First Contentful Paint)
          • FMP(First Meaningful Paint)

          除了渲染時(shí)間之外,還有其他一些因素也需要考慮。例如,你的頁(yè)面使用了多少阻塞資源以及下載它們需要多長(zhǎng)時(shí)間

          性能優(yōu)化策略

          鑒于我們?cè)谏厦娴贸龅慕Y(jié)論,我們得出網(wǎng)站性能優(yōu)化有三種主要策略:

          1. 盡量減少通過網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量;
          2. 減少通過網(wǎng)絡(luò)傳輸?shù)馁Y源總數(shù);
          3. 縮短關(guān)鍵渲染路徑;

          1. 減少要傳輸?shù)臄?shù)據(jù)量

          首先,移除所有未使用的部分,例如 JavaScript 中無(wú)法訪問的函數(shù)、帶有從不匹配任何元素的選擇器的樣式以及被 CSS 永遠(yuǎn)隱藏的 HTML 標(biāo)簽。 其次,刪除所有重復(fù)項(xiàng)。

          然后,我建議建立一個(gè)自動(dòng)壓縮過程。 例如,它應(yīng)該從你的后端服務(wù)中刪除所有注釋(但不是源代碼)以及每個(gè)不包含附加信息的字符(例如 JS 中的空白字符)。

          完成后,我們剩下的可以是文本字符串。 這意味著我們可以安全地應(yīng)用諸如 GZIP(大多數(shù)瀏覽器都理解)之類的壓縮算法。

          最后,還有緩存。 瀏覽器第一次呈現(xiàn)頁(yè)面時(shí)它不會(huì)有幫助,但它會(huì)在以后的訪問中節(jié)省很多。 但是,記住兩點(diǎn)至關(guān)重要:

          • 如果你使用 CDN,請(qǐng)確保支持緩存并在正確設(shè)置。
          • 與其等待資源的到期,不如 將文件的“指紋”嵌入到其 URL 中,以使本地緩存無(wú)效。

          當(dāng)然,應(yīng)該為每個(gè)資源定義緩存策略。 有些可能很少改變或根本不會(huì)改變,有的則是變化的很快,還有些文件包含敏感的信息(可以使用 “private” 防止 CDN 緩存私有數(shù)據(jù))

          2. 減少關(guān)鍵資源的總數(shù)

          “關(guān)鍵”僅指網(wǎng)頁(yè)正確呈現(xiàn)所需的資源。 因此,我們可以直接跳過所有流程中沒有涉及的樣式以及腳本文件。

          樣式

          為了告訴瀏覽器不需要特定的 CSS 文件,我們應(yīng)該為所有引用樣式表的鏈接設(shè)置媒體屬性。 使用這種方法,瀏覽器將只根據(jù)需要處理與當(dāng)前媒體(設(shè)備類型、屏幕尺寸)匹配的資源同時(shí)降低所有其他樣式表的優(yōu)先級(jí)。 例如,如果你將 media=“print” 屬性添加到引用樣式以打印頁(yè)面的樣式標(biāo)記,則這些樣式不會(huì)在不打印媒體時(shí)干擾你的關(guān)鍵渲染路徑

          為了進(jìn)一步改進(jìn)該過程,你還可以將一些樣式內(nèi)聯(lián)這可以為我們節(jié)省了至少一次到服務(wù)器的往返行程

          腳本

          如上所述,腳本會(huì)阻塞解析,因?yàn)樗鼈兛梢愿淖?DOM 和 CSSOM。 為了避免這一點(diǎn),所有腳本標(biāo)簽都必須用屬性標(biāo)記——異步或延遲。

          標(biāo)有 async 的腳本不會(huì)阻塞 DOM 構(gòu)建或 CSSOM,因?yàn)樗鼈兛梢栽?CSSOM 構(gòu)建之前執(zhí)行。 但請(qǐng)記住,內(nèi)聯(lián)腳本無(wú)論如何都會(huì)阻止 CSSOM,除非你將它們放在 CSS 之上。

          相比之下,標(biāo)有 defer 的腳本將在頁(yè)面加載結(jié)束時(shí)進(jìn)行執(zhí)行

          換句話說,使用 defer,腳本直到頁(yè)面加載事件被觸發(fā)后才會(huì)執(zhí)行,而 async 讓腳本在文檔被解析時(shí)就會(huì)在后臺(tái)運(yùn)行。

          3.縮短關(guān)鍵渲染路徑長(zhǎng)度

          最后,應(yīng)將 CRP 長(zhǎng)度縮短到可能的最小值。

          作為樣式標(biāo)簽屬性的媒體查詢將減少必須下載的資源總數(shù)。 script 標(biāo)簽屬性 defer 和 async 將防止相應(yīng)的腳本阻塞解析。

          使用 GZIP 壓縮、壓縮和歸檔資源將減少傳輸數(shù)據(jù)的大小(從而也減少數(shù)據(jù)傳輸時(shí)間)。

          內(nèi)聯(lián)一些樣式和腳本也可以減少瀏覽器和服務(wù)器之間的往返次數(shù)。

          按照最新的最佳性能實(shí)踐理念,一個(gè)網(wǎng)站應(yīng)該做的最快的第一件事就是展示 ATF 內(nèi)容。 ATF 代表首屏這是立即可見的區(qū)域,無(wú)需滾動(dòng)。 因此,最好以首先加載所需樣式和腳本的方式重新排列與渲染相關(guān)的所有內(nèi)容,而其他所有內(nèi)容都停止(既不解析也不渲染)。

          結(jié)尾

          總而言之,網(wǎng)站性能優(yōu)化包含了網(wǎng)站響應(yīng)的各個(gè)方面,例如緩存、設(shè)置 CDN、重構(gòu)、資源優(yōu)化等,但是所有這些都可以逐步完成。 作為 Web 開發(fā)人員,你可以將本文作為參考,并始終記住在實(shí)驗(yàn)之前和之后測(cè)量性能。

          瀏覽器開發(fā)人員盡最大努力優(yōu)化你訪問的每個(gè)頁(yè)面的網(wǎng)站性能,這就是瀏覽器通常實(shí)現(xiàn)所謂的“預(yù)加載器”的原因。 這部分程序會(huì)在你以 HTML 格式請(qǐng)求的資源之前進(jìn)行掃描,以便一次發(fā)出多個(gè)請(qǐng)求并讓它們并行運(yùn)行。 這就是為什么在 HTML(逐行)以及腳本標(biāo)簽中保持樣式標(biāo)簽彼此靠近的原因。

          此外,嘗試批量更新 HTML 以避免多個(gè)布局事件這些事件不僅由 DOM 或 CSSOM 中的更改觸發(fā),而且在設(shè)備方向更改和窗口大小調(diào)整時(shí)也會(huì)觸發(fā)。

          點(diǎn)擊下方,第一時(shí)間了解華為云新鮮技術(shù)~

          華為云博客_大數(shù)據(jù)博客_AI博客_云計(jì)算博客_開發(fā)者中心-華為云

          過javascript獲取日期方法封裝一些年月日期篩選,方便日后調(diào)用!

          具體集合了以下幾種方法

          效果如下:

          主要代碼:

          html:

          javascript:


          主站蜘蛛池模板: 午夜AV内射一区二区三区红桃视| 日韩人妻无码免费视频一区二区三区| 国产主播一区二区三区在线观看| 伊人色综合一区二区三区影院视频| 日本高清一区二区三区| 精品综合一区二区三区| 精品亚洲综合在线第一区| 精品深夜AV无码一区二区老年| 制服美女视频一区| 美女视频一区二区| 在线播放偷拍一区精品| 国产丝袜无码一区二区视频| 奇米精品一区二区三区在| 水蜜桃av无码一区二区| 国产一区风间由美在线观看| 国产在线无码一区二区三区视频| 日本一区频道在线视频| 久久久国产一区二区三区| 精品人妻AV一区二区三区| 国产精品免费大片一区二区| 亚洲中文字幕一区精品自拍| 熟女性饥渴一区二区三区| 国精产品999一区二区三区有限 | 无码精品人妻一区二区三区免费看| 国产免费一区二区三区| 国产丝袜美女一区二区三区 | 综合一区自拍亚洲综合图区| 久久精品人妻一区二区三区 | 亚洲色偷偷偷网站色偷一区| 日韩精品无码久久一区二区三| 精品一区二区三区在线播放视频 | 波多野结衣一区视频在线| 国产精品成人国产乱一区| 亚洲国产欧美国产综合一区 | 精品国产一区二区三区久久影院| 无码午夜人妻一区二区三区不卡视频| 国产在线精品一区二区在线看| 国产精品夜色一区二区三区| 色老头在线一区二区三区| 国模大尺度视频一区二区| 高清无码一区二区在线观看吞精|