zoukankan      html  css  js  c++  java
  • web站点性能优化

    最后编辑时间:2017年2月15日15:40:29

    1、前端代码:

      a) 【减少请求】独立出一个静态站专门部署JS、CSS、图片;好处就是页面加载的时候不用从同一个站点请求,因为从同一个站点请求是有数量限制的(最新的各种浏览器一般是6个或者8个)

      b) 【减少请求】文件合并,比如CSS中icon图标合并为一张大图,静态文件合并请求(参考京东的方式,需要nginx配置,据说最初来自于淘宝)

      c) 【减少流量】js、css文件压缩、合并;

        1,不建议使用统一的头模板,公用文件中的代码应尽可能的为公用功能,否则应放到页面单独的js文件中

        2,js应尽量写到文件中,带上版本号,方便更新;静态文件是会缓存到本地的,写到文件中的话就不用反复下载

      d) 【用户体验】使用异步加载图片(页面加载完成后慢慢加载或者滚到的时候加载),增加异步的操作(AJAX)等

    2、后端代码:

      a) 使用缓存,缓存的使用就是为了减少数据库的压力,因此不能乱用,也不是越用越好,否则反而可能更慢

      b) 异步任务,比如发短信、邮件等处理时间较长,可能造成用户等待的功能可放到异步任务中处理;原理:先将要处理的数据存起来,放到后台慢慢运算;我们可以使用消息队列、缓存等方式实现

      c) 数据库脚本优化,性能优化的重心,基本就在这上面了;缓存、异步这些弄好之后,我们以后基本不用动,只要用就可以了,脚本每天都在写,说不定哪天上线就造成了整个网站变慢

        1,勤拿少取的原则:即每次取数据的时候尽量少,可以分多次取;可以提升速度,结果就是可能产生大量的连接

        2,减少连接:看似和第一条矛盾,在实际运用中是要分情况的;循环调数据的情况绝对要避免

        3,减少流量:切忌SELECT *这种,要根据情况取需要字段,例如,列表中查询的时候一定要把详情的字段去掉

        4,复杂查询:还是在数据库中优化完之后再放到程序中吧;WITH (NOLOCK)在可以带的时候带上,UPDATE 是会锁表的,这时候查询就需要等待;数据库不应该有太复杂的查询,否则应该把数据分开查出来之后放到程序中处理

        5,不建议使用存储过程:不好维护,比如stackoverflow就不使用存储过程

    3、服务器:

      a) 负载服务器;后期的负载均衡肯定是要做的

      b) 数据服务器;读写分离,合适的索引,分库

      c) 主站服务器;

      d) 静态站点独立服务器

      e) 缓存服务器

      f) 异步任务、定时任务服务器

        

  • 相关阅读:
    一个微信小程序跳转到另一个微信小程序
    微信小程序 canIUse
    微信小程序 点击事件 传递参数
    jquery 在将对象作为参数传递的时候要转换成 JSON
    微擎后台进行GET提交
    微信小程序添加底部导航栏
    jquery 中 html与text函数的区别
    C++ int与char[]的相互转换
    Qt error: LNK1158 无法运行rc.exe解决办法
    Qt error C3615: constexpr 函数 "qCountLeadingZeroBits" 不会生成常数表达式
  • 原文地址:https://www.cnblogs.com/lilwzca/p/6401967.html
Copyright © 2011-2022 走看看