当前位置: 首页 > news >正文

建设公司网站入账海宁高端高端网站设计

建设公司网站入账,海宁高端高端网站设计,网站开发的步骤过程,怎样用记事本做网站前言 DNS解析过程消耗时间DNS有本地缓存 比如首次访问某站点#xff0c;会耗费很多时间进行DNS解析#xff0c;但解析结束后会将ip地址存入本地设备#xff0c;后续再访问此域名时就会直接从缓存中取。 首次访问页面时#xff0c;本页面的DNS解析是无法优化的#xff0…前言 DNS解析过程消耗时间DNS有本地缓存 比如首次访问某站点会耗费很多时间进行DNS解析但解析结束后会将ip地址存入本地设备后续再访问此域名时就会直接从缓存中取。 首次访问页面时本页面的DNS解析是无法优化的但是页面中可能用到其他域名下的资源如css、图片、js等可以通知浏览器提前对这些资源进行异步DNS解析。 实现 以下代码引入了其他域名下的资源需要在head中添加link进行dns预解析格式如下 link reldns-prefetch hrefhttps://www.xxx.com!DOCTYPE html html langenheadlink reldns-prefetch hrefhttps://www.abc.comlink reldns-prefetch hrefhttps://www.aaa.comlink reldns-prefetch hrefhttps://www.tes.commeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/titlestyle.container {background: url(https://www.abc.com/imgs/main-bg);}/style /headbodydiv classcontainerimg srchttps://www.aaa.com/img/32fd.jpg alt/divscript srchttps://www.tes.com/sss.js/script /body/html框架内实现 但是合作开发模式下站外资源的引用会分散到很多组件中难以集中控制且由于是手动写死的地址也会提高维护成本。 本文提供两种方式分别为手写js实现以及vite插件如果想将js插件发布到npm可以看另一篇文章如何将自己的插件发布到npm上。 方式一手写js实现 标准的做法应该是根据构建工具写一个插件如vite用的rollup就要写一个rollup插件但是本文通过node实现。 首先需要实现分析打包结果中的js取出站外资源对应域名并动态添加link标签到html的head中。 新建js用于动态插入link 确保项目中有如下插件 npm install node-html-parser npm install glob npm install url-regexdns-prefetch.cjs代码内容如下 // 该node文件识别打包结果中的站外资源地址并动态插入index.html中link实现dns-prefetch提高渲染速度 // 调用方式node ./scripts/dns-prefetch.jsconst fs require(fs) const path require(path) const { parse } require(node-html-parser) // 可以脱离浏览器环境将html字符串解析成HTML节点 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 reldns-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中在打包处理后执行该js scripts: {dev: vite,build: vite build node ./scripts/dns-prefetch.cjs,preview: vite preview },的意义如 vitets 项目默认打包为build: tsc vite build意为先进行ts语法检查再打包如果语法检查错误则立即停止。所以此处将自定义js放到打包后执行。 查看dist中index.html发现link已经插入。 方式二vite-plugin-prefetch-dns插件 npm install vite-plugin-prefetch-dnsimport { defineConfig } from vite; import prefetchDns from vite-plugin-prefetch-dns;export default defineConfig({plugins: [...其他插件prefetchDns()] });执行npm run build打包完毕后看到正确插入link标签。
http://www.w-s-a.com/news/924167/

相关文章:

  • 文化馆网站建设意义营销型国外网站
  • 公司网站定位建议wordpress怎么用模板
  • 中国十大热门网站排名计算机选什么专业最好
  • 怀化建设企业网站太原网站关键词排名
  • 空间注册网站网站制作是怎么做的
  • 数码家电商城网站源码一个网站的成本
  • 网站伪静态是什么意思麻涌东莞网站建设
  • 理县网站建设公司郑州仿站定制模板建站
  • 手机网站建设网站报价诸城人才网招聘网
  • 一起做网站怎么下单临沂网站制作
  • 公司网站案例企业网站 模版
  • 做的好的响应式网站有哪些网站界面设计案例
  • 上海创意型网站建设icp备案网站信息
  • 网站没收录中山手机网站制作哪家好
  • 代驾软件开发流程wordpress 博客主题 seo
  • 成都的教育品牌网站建设网站广告js代码添加
  • 网站找人做seo然后网站搜不到了网站建设seoppt
  • 做网站优化有用吗学做文案的网站
  • wordpress 知名网站怎么做微网站
  • 用电脑怎么做原创视频网站河南建设工程信息网一体化平台官网
  • 云服务器和网站空间郑州做招商的网站
  • 规模以上工业企业的标准北京seo结算
  • 软件开发过程模型如何做网站性能优化
  • 网站建站公司广州南京江北新区楼盘
  • 哪些做展架图的网站好开发公司2022年工作计划
  • 磨床 东莞网站建设wordpress下载类主题系统主题
  • 免费学编程网站芜湖做网站都有哪些
  • 能发外链的网站门户网站网页设计规范
  • 网站建设所需人力南城区网站建设公司
  • 网站做图尺寸大小手机模板网站模板下载网站有哪些内容