国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

重慶網站建站建設的費用seo最強

重慶網站建站建設的費用,seo最強,企業(yè)網站建設 郵箱,h5網站如何建設前言 DNS解析過程消耗時間DNS有本地緩存 比如首次訪問某站點,會耗費很多時間進行DNS解析,但解析結束后會將ip地址存入本地設備,后續(xù)再訪問此域名時就會直接從緩存中取。 首次訪問頁面時,本頁面的DNS解析是無法優(yōu)化的&#xff0…

前言

  • DNS解析過程消耗時間
  • DNS有本地緩存

比如首次訪問某站點,會耗費很多時間進行DNS解析,但解析結束后會將ip地址存入本地設備,后續(xù)再訪問此域名時就會直接從緩存中取。

首次訪問頁面時,本頁面的DNS解析是無法優(yōu)化的,但是頁面中可能用到其他域名下的資源,如css、圖片、js等,可以通知瀏覽器提前對這些資源進行異步DNS解析。

在這里插入圖片描述

實現

以下代碼引入了其他域名下的資源,需要在head中添加link進行dns預解析,格式如下:

<link rel="dns-prefetch" href="https://www.xxx.com">
<!DOCTYPE html>
<html lang="en"><head><link rel="dns-prefetch" href="https://www.abc.com"><link rel="dns-prefetch" href="https://www.aaa.com"><link rel="dns-prefetch" href="https://www.tes.com"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.container {background: url('https://www.abc.com/imgs/main-bg');}</style>
</head><body><div class="container"><img src="https://www.aaa.com/img/32fd.jpg" alt=""></div><script src="https://www.tes.com/sss.js"></script>
</body></html>

框架內實現

但是合作開發(fā)模式下,站外資源的引用會分散到很多組件中,難以集中控制且由于是手動寫死的地址,也會提高維護成本。

本文提供兩種方式,分別為手寫js實現以及vite插件,如果想將js插件發(fā)布到npm可以看另一篇文章:如何將自己的插件發(fā)布到npm上。

方式一:手寫js實現

標準的做法應該是根據構建工具寫一個插件,如vite用的rollup,就要寫一個rollup插件,但是本文通過node實現。

首先需要實現分析打包結果中的js,取出站外資源對應域名,并動態(tài)添加link標簽到html的head中。

在這里插入圖片描述

新建js用于動態(tài)插入link

項目中新建scripts目錄,

確保項目中有如下插件

npm install node-html-parser
npm install glob
npm install url-regex

dns-prefetch.cjs代碼內容如下:

// 該node文件:識別打包結果中的站外資源地址并動態(tài)插入index.html中l(wèi)ink實現dns-prefetch,提高渲染速度
// 調用方式:node ./scripts/dns-prefetch.jsconst fs = require("fs")
const path = require("path")
const { parse } = require("node-html-parser") // 可以脫離瀏覽器環(huán)境將html字符串解析成HTML節(jié)點
const { glob } = require("glob")
const urlRegex = require("url-regex") // 可以分析文件中所包含的url
const { strict } = require("assert")const urlPattern = /(https?:\/\/[^/]*)/i // 獲取外部鏈接
const urls = new Set() // url集合// 遍歷dist目錄中的所有 HTML 文件
async function searchDomain() {const files = await glob("dist/**/*.{html,css,js}")for (const file of files) {const source = fs.readFileSync(file, "utf-8")const matches = source.match(urlRegex({ strict: true }))if (matches) {matches.forEach((url) => {const match = url.match(urlPattern)if (match && match[1]) {urls.add(match[1]) // 將域名加到Set中}})}}
}// 將遍歷好的所有域名生成link預解析標簽并插入到index.html中
async function insertLinks() {const files = await glob("dist/**/*.html")const links = [...urls].map((url) => `<link rel="dns-prefetch" href="${url}">`).join("\n")for (const file of files) {const html = fs.readFileSync(file, "utf-8")const root = parse(html)const head = root.querySelector("head")head.insertAdjacentHTML("afterbegin", links)fs.writeFileSync(file, root.toString(), "utf-8")}
}async function main() {await searchDomain()await insertLinks()
}main()

package.json中在打包處理后執(zhí)行該js

"scripts": {"dev": "vite","build": "vite build && node ./scripts/dns-prefetch.cjs","preview": "vite preview"
},

&&的意義:如 vite+ts 項目默認打包為:"build": "tsc && vite build",意為先進行ts語法檢查,再打包,如果語法檢查錯誤則立即停止。所以此處將自定義js放到打包后執(zhí)行。

查看dist中index.html,發(fā)現link已經插入。

在這里插入圖片描述

方式二:vite-plugin-prefetch-dns插件

npm install vite-plugin-prefetch-dns
import { defineConfig } from 'vite';
import prefetchDns from 'vite-plugin-prefetch-dns';export default defineConfig({plugins: [...其他插件prefetchDns()]
});

執(zhí)行npm run build,打包完畢后看到正確插入link標簽。

http://aloenet.com.cn/news/33403.html

相關文章:

  • 做網站可以用別人的身份證嗎網站流量數據
  • 天津網站建設開發(fā)有哪些天津百度網站排名優(yōu)化
  • 伊朗最新消息紹興seo計費管理
  • 博客系統(tǒng)做網站搜索引擎seo關鍵詞優(yōu)化方法
  • 電子銷售網站模板免費下載百度點擊工具
  • 中國建筑人事部大全合肥正規(guī)的seo公司
  • 住建局領導班子成員分工百度首頁排名優(yōu)化價格
  • 可以做兼職的網站有哪些工作室石家莊網站建設方案推廣
  • wordpress 做公司網站手游cpa推廣平臺
  • 蘭州疫情風險等級石家莊seo網站排名
  • wordpress去掉作者信息seo網站優(yōu)化平臺
  • 長沙做旅游網站公司預測2025年網絡營銷的發(fā)展
  • 莆田有哪幾家做網站設計關鍵詞優(yōu)化搜索排名
  • 頁面設計制作網站源碼百度優(yōu)化是什么
  • 咸陽營銷型網站建設泉州全網營銷優(yōu)化
  • 網站轉化附子seo教程
  • js 網站測速千鋒教育地址
  • 有沒有幫人做數學題的網站企業(yè)宣傳文案
  • wordpress 2019主題谷歌字體寧波seo怎么做推廣渠道
  • 網站改版 方案東莞整站優(yōu)化推廣公司找火速
  • 做網站一般哪里找廣東的seo產品推廣服務公司
  • 男女直接做免費的網站我對網絡營銷的理解
  • 在建設部網站上的舉報國外免費輿情網站有哪些軟件
  • 石家莊制作網站的公司效果最好的推廣軟件
  • 什么用來編寫網頁鄭州seo詢搜點網絡效果佳
  • 酒泉網站建設企業(yè)網站設計模板
  • 橋東網站建設百度熱點榜單
  • python 做網站 代碼會seo顧問是干什么
  • 中華人民共和國住房與城鄉(xiāng)建設部網站廣州代運營公司有哪些
  • 濟南優(yōu)化網站的哪家好軟文世界平臺