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

php购物网站开发设计与实现沧州凯航网络技术有限公司

php购物网站开发设计与实现,沧州凯航网络技术有限公司,网页制作基础教程教案,两个男生是怎么做的细写前言 性能优化是目前在面试中被问到非常多的问题#xff0c;主要就是通过各种算和技术来提高页和应用的速度和用户体前端性能优化的问题并不好回答 在回答的时候干万不要掉进一个误区#xff0c;认为性能优化只是几个技术点而已#xff0c;事实上性能优化涉及到的是多方面的… 前言 性能优化是目前在面试中被问到非常多的问题主要就是通过各种算和技术来提高页和应用的速度和用户体前端性能优化的问题并不好回答 在回答的时候干万不要掉进一个误区认为性能优化只是几个技术点而已事实上性能优化涉及到的是多方面的 我们首先需要知道当一个项目出现性能问题时并不是突然发生了而是日积月累的结果所以对于一个项目来说最好的性能优化应该是从平时开发过程中就要去注意和实现的 三个层面 所以接下来我们会从三个层面来聊一聊性能优化的内容包括 项目架构项目开发项目部署 项目架构 为什么架构设计会影响性能呢 俗话说如果战略如果错误那么在战术再怎么优秀也无法弥补失败。在真实开发中性能优化并不是一朝一夕的事情,如果等到我们的项目出现严重的性能问题再去解决往往会成为一坨大粪代码 那么架构设计需要考虑哪些因素 主要是两方面的因素协同开发、模块解耦。 项目架构的因素 协同开发 这是指多个开发人员能够有效地一起工作减少冲突和重复工作 良好的架构可以帮助团队成员独立开发各自的模块而不必过于依赖其他人 另外当我们出现人员流动时(有人入职或者离职),可以快速的应对。 有人入职可以快速分配任务协作开发。 有人离职不影响其他模块的迭代项目有序推进。 这是一个好的项目架构的前提 模块解耦 解耦是指在设计和开发过程中使各模块之间的依赖最小化 能够使代码更加灵活 易于维护和扩展 这对于大型项目或者长期维护项目非常重要因为它降低了修改某个模块时对其他模块的影响尽量每个模块需要做到高内聚 低耦合 项目架构的实现一采用模块化的架构设计 Utils工具封装模块 将项目中通用的工具函数封装在utils目录中比如日期格式化函数、数据处理函数等这些工具函数应该是纯函数保证输入相同输出相同不依赖于外部状态将工具函数分模块管理并在index.js中集中导出以便在项目的其他地方直接导入使用 Store状态管理模块 在Vue项目中可以通过Pinia的模块化设计来管理状态每个页面或功能模块有自己的store模块如userStorejs、productStorejs等同时可以创建一个公共store模块commonStore.js用于存放应用级别的状态如全局loading状态等组件、页面的模块开发 Vue源码相关架构 从大的模块来说它的渲染器、编译器、响应式系统是划分清晰的响应式系统和编译器可以作为独立的模块来开发和使用渲染器依赖于响应式系统和编译器从小的模块来说它的调度系统、watch、watchEffect等又单独做了分离包括keep-alive、suspense、teleport都可以作为一个独立的模块来开发再集成到整个Vue项目中。 项目架构的实现二 其他方面的设计 Webpack和Vite的优化 代码分割CodeSplittingWebpack和Vite都支持代码分割这有助于只加载需要的模块减少初始加载时间并提高性能 动态导入DynamicImport使用动态导入可以根据需要懒加载模块进一步降低加载时间。 TreeShaking通过去除未使用的代码来优化最终输出文件的大小。Webpack和Vite都有内置的支持 使用版本控制和分支策略 Git工作流团队可以采用Git工作流比如GitFlow以确保开发人员在不同的分支上独立工作然后通过合并请求pullrequests进行代码审查和集成 代码审查codereview代码审查是协同开发的重要部分确保代码质量和一致性同时让团队成员对代码变更保持透明包括ESlint、Prettier等 其他方面的考虑 持续集成/持续部署(CI/CD)工具的使用利用CI/CD管理和自动化部署流程确保团队开发的一致性提高测试和部署的效率 文档和沟通良好的文档、沟通机制来确保团队协同工作特别是在项目架构和代码约定方面 项目开发 项目开发框架相关优化(Vue) 合理使用v-if和v-show v-if用于条件变化不频繁的场景避免不必要的组件创建和销毁 v-show用于频繁切换显示状态的场景通过控制CSS的display属性来提升性能避免不必要的组件染 避免不必要的组件重渲染 使用key确保组件唯一性避免不必要的DOM更新 使用v-once指令确保不变的数据只渲染一次。 合理使用Vue生命周期勾子,控制组件是否需要重新渲染 组件懒加载(LazyLoading 使用动态import实现按需加载组件减少初始加载时间 使用Vue的computed 使用computed属性缓存计算结果避免重复计算 状态下沉 根据虚拟DOM更新特性将状态下沉到子组件避免全局或父组件频繁更新 合理使用Keep-Alive 使用keep-alive组件缓存动态组件,避免不必要的组件销和创建 项目开发-公共开发代码优化 减少不必要的计算 避免在染过程中进行大量计算将重计算操作放在适当位置如computed或方法调用 抖动Debouncing和节流Throttling 在频繁触发的事件如滚动、输入上使用去抖动和节流减少事件处理频率 优化循环和选代 优化循环使用比如获取长度在外部获取arr.length避免在循环中创建新对象和数组等 使用WebWorkers 将繁重计算任务移到WebWorkers中避免阻塞主线程保持流畅性 避免内存泄漏 在组件销毁时清理定时器、事件监听器闭包小心内存泄漏等资源避免内存泄漏 使用现代图片格式和精图 使用WebP、AVIF等格式减少图片文件大小加快加载速度对图片进行压缩处理。 精灵图的使用页面只需要发送一次请求来加载这张大图而不是为每个小图标发送多个请求这可以显著减少HTTP请求的数量降低网络开销。 图片懒加载 使用懒加载技术只加载可视区域的图片减少初始加载时间和带宽消耗CSS选择器优化 使用简单有效的选择器避免复杂的选择器链提高染性能 避免回流和重绘 尽量减少DOM操作使用批量更新优化回流和重绘性能。 使用transform和opacity进行动画效果避免触发回流 使用CSS动画 优先使用CSS动画而JavaScript动画提升性能 项目开发-其他方面优化 服务端渲染SSR SSR(服务端染)是在服务器端预先染页面并将完整的HTML发送到客户端SSR提高了首屏染速度特别适用于SEO需求强的项目和需要快速加载的应用 代码压缩和混滑 使用Terser等工具压缩JavaScript减少文件大小 压缩CSS和HTML文件优化代码传输速度 按需加载和代码拆分 使用Webpack、vite等工具实现代码拆分按需加载模块 第三方包按需引入 使用Babel插件或Vite配置按需引入UI库组件减小打包体积 使用虚拟列表等技术 在处理长列表时使用虚拟滚动技术只染可视区域的元素提升性能 项目部署 优化手段 CDN使用和配置 CDN(内容分发网络)是一组分布在多个地理位置的服务器用于加速静态资源如图片、CSS、JavaScript文件等)的传输通过将资源缓存到离用户更近的服务器上CDN可以显著减少资源加载时间提升用户体验 。选择可靠的CDN提供商根据目标用户群体的位置选择最佳的CDN服务器节点。 将静态资源托管到CDN提供商如阿里云、腾讯云、Cloudflare、AWSCloud等上 配置构建工具如Webpack或vite输出静态资源的路径 首屏渲染速度优化 将首屏染所需的关键CSS内联到HTML中减少CSS阻塞染的时间也可以整合网络请求。 使用async或defer属性来异步加载JavaScript脚本避免阻塞染 通过按需加载(LazyLoading)和代码分割(CodeSplitting)技术将非关键代码分 减少初始加载时间。 当然也包括我们前面架构中提到的SSR技术。 HTTP缓存策略 HTTP缓存策路通过在客户端缓存静态资源 避免重复请求减少服务器负载和页面加载时间。 设置适当的HTTP缓存头(如Cache-Control、ETag和Expires)为静态资源设置缓存策略 根据文件的特性设置强制缓存Cache-Control和Expires比如JS文件、CSS文件等可以结合文件指纹hash在文件更新时文件生成新的文件名让客户端可以加载新的文件)。 对于频繁更新的文件使用协商缓存((ETag和Last-Modified))比如如果HTML页面经常变更(可以让浏览器根据页面内容变化判断是否需要重新加载)。 代码压缩和优化 代码压缩和优化是通过去除多余的空格、注、代码缩 例如将变量名缩短 当然也包括Treeshaking等方式减少文件大小 加快传输速度 使用构建工具如Webpack ite压缩插件如Terser对JavaScript代码行压缩和优化 玉缩CSS和HTML文件减少文件体积。 可以使用诸如TinyPNG、mageoptim、 squoosh等工具对图片进行压缩 减少图片文件的大小 对图标和简单的图形 可以使用SVG格式 这种格式不仅文件小 而且可以无损缩放。 文件压缩是通过压缩算法如gzip、减少文件体积的技术可以显著减少文本文件如HTML、CSS、JavaScript和部分图像文件的体积降低网络传输时间(实现也非常简单在服务器中中启用gzip或Brotli压缩即可)。 减少和优化资源请求 减少DNS查询 通过将多个资源托管在一域名下减少DNS查询的时间。 对于必须跨域的资源使用DNS预解析(link reldns-prefetch”href//zhaimou.com”) 通过异步加载或延加载如使用async或defer减少第三方脚本对页面加载速度的影响。 预加载Preload和预获取Prefetch 使用linkrel“preload href”/path/to/resourceasscript/style来预加载关键资源 使用linkrel“prefetch” href”/path/to/resource来预获取未来可能需要的资源 文章到这里就结束了,更多作为自我学习,也希望对你有所帮助
http://www.dnsts.com.cn/news/47139.html

相关文章:

  • 小微企业建站教育培训学校
  • 做细分领域的同城网站南宁seo平台标准
  • 淄博专业网站建设哪家好wordpress 主题 授权
  • 包装设计网站哪个好用济南网络员
  • h5商城网站是什么公司网站建设设计如何收费
  • 余干网站建设制作网站产品页模板
  • 组态王如何做网站链接网站开发中的网页上传和网站发布
  • 金华企业制作网站可以做分析图的地图网站
  • 环球资源网网站特色为什么要做企业网站
  • 小清新网站源码嘉兴秀洲区建设局网站
  • 网站可以换虚拟主机吗容桂新网站建设
  • 网站建设和网站推广外贸网络推广网
  • 制作网站代码大全怎么做免流网站
  • 个人建什么网站最赚钱用ps做网站切片
  • 网站如何添加统计代码工程建设信息都在哪个网站发布
  • 各大公司开源网站东莞阳光网官方网站登录
  • 三亚市住房和城乡建设厅网站建筑网格组织
  • 律师做网站费用电子外贸网站
  • 用什么网站做海报wordpress 外链接口
  • 网站导航容易做h5网站开发哪个好
  • 成都艾邦视觉专业网站建设公司seo搜索引擎优化软件
  • 上海网站建设公司四叶互联河北易县建设局官方网站
  • 有关电商网站开发的实习报告上海网站建设培训学校
  • 那个外贸网站做的好一级页面的网站怎么做
  • 北京朝阳区哪里有网站开发西安网站建设推广专家
  • 在哪一个网站上做劳务合同备案wordpress国内訪問
  • 平面网站模版域名注册网站有哪些
  • 中国空间站首次太空授课广州网站优化费用
  • 怎么把网站做成手机网站京东商城网站建设分析
  • 嘉兴做网站重新做网站