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

项目外包公司到底值不值得去seo的课谁讲的好

项目外包公司到底值不值得去,seo的课谁讲的好,网站备案会过期吗,云上的网站怎么做等保在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首屏的体验。通过调试发送时间主要消耗…

在Vue项目中,引入到工程中的所有js、css文件,编译时都会被打包进vendor.js,浏览器在加载该文件之后才能开始显示首屏。若是引入的库众多,那么vendor.js文件体积将会相当的大,影响首屏的体验。通过调试发送时间主要消耗在下载文件上,服务器的带宽本来就小,而下载一个vendors.js差不多3M多,占用了主要的时间。于是,使用了CDN加速方式,将依赖的组件从vendors.js中拆分出来,加快vendors.js文件的下载速度,同时通过CDN加载依赖资源也减少对服务器带宽的占用。优化后,首页加载速度在4s左右,但这个过程却遇到了依赖组件使用上的一些问题。

我们为了减少打包体积和缩短打包时间,选择通过 CDN(内容分发网络)引入一些常用的第三方库,如 Vue、Lodash、Element-UI 等。然而,这种引入方式也存在一定的风险,例如 CDN 服务的稳定性问题。一旦所依赖的 CDN 服务出现故障或不可用,项目将无法正常加载这些关键库,从而导致整个应用无法正常运行。

一、CDN 引入的优势

1、减少打包体积

在使用 npm 安装第三方库时,这些库会被打包到最终的构建文件中,导致构建文件体积增大。而通过 CDN 引入,这些库不会被打包到构建文件中,从而显著减少了打包后的文件体积。例如,对于一些大型库如 Element-UI,其打包后的体积可能相当可观,通过 CDN 引入可以有效减轻打包负担。

2、缩短打包时间

由于不需要将第三方库打包到构建文件中,Webpack 等打包工具在打包过程中可以节省大量的时间和资源。这在大型项目中尤为明显,能够显著提高开发效率,减少每次构建的等待时间。

3、提高加载速度

CDN 服务通常在全球范围内分布了多个节点,能够根据用户的地理位置自动选择最近的节点进行资源加载。相比本地服务器,CDN 的加载速度通常更快,尤其是在用户与服务器距离较远的情况下。此外,CDN 服务通常会进行资源的缓存和优化,进一步提升加载性能。

4、减少服务器负载

将静态资源托管在 CDN 上可以减轻你的服务器负载,特别是对于访问量大的网站。

5、跨域问题

使用 CDN 可以避免跨域资源共享(CORS)问题,因为资源直接从 CDN 服务器加载。

二、CDN 引入的潜在风险

1、CDN 服务不可用

CDN 服务的稳定性是影响项目正常运行的关键因素。如果 CDN 服务提供商出现故障、网络问题或被某些地区屏蔽,项目将无法加载所需的第三方库。例如,某些地区的网络环境可能无法访问国外的 CDN 服务,导致项目加载失败。

2、版本不一致问题

在项目开发过程中,可能会因为 CDN 链接中的版本号不明确而导致加载的库版本与项目依赖的版本不一致。这可能会引发兼容性问题,导致项目运行异常。例如,Element-UI 的不同版本可能存在 API 差异,如果加载了错误的版本,可能会导致组件无法正常渲染或功能异常。

3、安全性问题

通过 CDN 引入外部资源时,可能会面临一些安全风险,如中间人攻击、恶意代码注入等。如果 CDN 服务被攻击或篡改,可能会导致项目加载到恶意代码,从而对用户数据和应用安全造成威胁。

三、解决方案

1、使用多个 CDN 服务

为了避免单一 CDN 服务不可用导致的问题,可以在项目中同时使用多个可靠的 CDN 服务。例如,可以同时使用 jsDelivr、CDNJS 和 BootCDN 等服务。在加载资源时,可以先尝试加载主 CDN 的资源,如果加载失败,则自动切换到备用 CDN。以下是一个示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue App</title><script>function loadScript(src, callback) {const script = document.createElement("script");script.src = src;script.onload = callback;script.onerror = () => {console.error(`Failed to load script from ${src}`);// 尝试加载备用 CDNif (src.includes("cdn.jsdelivr.net")) {loadScript("https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.14/vue.min.js", callback);} else if (src.includes("cdnjs.cloudflare.com")) {loadScript("https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js", callback);}};document.head.appendChild(script);}</script>
</head>
<body><div id="app"><h1>{{ message }}</h1></div><script>loadScript("https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js", () => {new Vue({el: "#app",data: {message: "Hello Vue!"}});});</script>
</body>
</html>

2、本地备份方案

为了进一步提高项目的可靠性,可以为关键的第三方库提供本地备份方案。在项目中同时提供 CDN 链接和本地文件路径,当 CDN 加载失败时,自动切换到本地资源。以下是一个示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue App</title><script>function loadScript(src, fallbackSrc, callback) {const script = document.createElement("script");script.src = src;script.onload = callback;script.onerror = () => {console.error(`Failed to load script from ${src}`);// 尝试加载本地备份loadScript(fallbackSrc, null, callback);};document.head.appendChild(script);}</script>
</head>
<body><div id="app"><h1>{{ message }}</h1></div><script>loadScript("https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js","/path/to/local/vue.min.js",() => {new Vue({el: "#app",data: {message: "Hello Vue!"}});});</script>
</body>
</html>

3、本地缓存

在本地项目中缓存 CDN 资源,例如使用 npm 的 file-loader 或 copy-webpack-plugin 将 CDN 资源下载到本地项目中。这样,即使 CDN 不可用,项目仍然可以正常运行

// 使用 webpack 的 copy-webpack-plugin 示例
const CopyWebpackPlugin = require('copy-webpack-plugin');module.exports = {plugins: [new CopyWebpackPlugin({patterns: [{ from: 'node_modules/some-library/dist', to: 'libs/some-library' }]})]
};

4、版本锁定

明确指定 CDN 资源的版本号,确保项目在不同环境中的一致性。例如,使用 JSDelivr 的 URL 时,可以指定版本号:

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.min.js"></script>

http://www.dtcms.com/wzjs/183254.html

相关文章:

  • 网站中链接怎么做安卓优化大师hd
  • 广州小程序开发方案seo智能优化
  • 做网站1008做网站 - 百度2345网址大全设主页
  • wordpress如何自动采集网站图片电商平台排行榜前十名
  • 长沙营销型网站制作费用武汉seo招聘
  • 南京做电商网站的公司简介网络建站流程
  • 北京网站建设价格便宜兰州网络推广关键词优化
  • 免费男人做那个的视频网站seo主管招聘
  • 山西建设局网站首页搜索引擎优化的要点
  • 快速制作效果图软件如何做网站推广及优化
  • 校园网站平台建设公众号seo排名优化
  • 县级政府网站建设费用怎么建网站详细步骤
  • 怎么制作网站上传视频搜狐视频
  • 网站建设来发票软文推广文章范文1000
  • 网站上百度要怎么做鼓楼网站seo搜索引擎优化
  • 哪些做直播卖食品的网站手机怎么创建自己的网站平台
  • 营销型网站建设网站建设营销说到很多seo人员都转行了
  • 响应式全屏网站深圳网站关键词
  • 西安知名网站推广宁波网络推广产品服务
  • 卡盟怎么网站怎么做武汉谷歌seo
  • pc网站怎么做宁德市人民政府
  • 网站开发就业前景怎么样网络app推广是什么工作
  • 教务系统门户网站网站维护是什么意思
  • 个人网站设计报告书百度云搜索引擎官网入口
  • 做网站用什么主机好网上销售哪些平台免费
  • 青岛品牌网站建设免费的发帖收录网站
  • 如何建购物网站百度权重查询
  • 知名网站定制公司电话定制网站建设
  • 中国互联网金融协会官网seo官网优化
  • h5婚纱摄影网站模板社群营销