现在的位置: 首页 > 综合 > 正文

如何优化网站 《C++开发的论坛系统 – BBS》

2018年02月14日 ⁄ 综合 ⁄ 共 964字 ⁄ 字号 评论关闭

这里不讨论壕的做法,比如集群、负载均衡等,对于大型网站这些做法直接堆服务器即可

以下讨论的方法是只针对单服务器而言的,而且优化过的程序在单台服务器上运行,是完全满足需求很多中小网站的,比如你只有一台机器,上面运行WebServer、数据库、所有的资源文件如css、js、上传文档、图片甚至视频。如果单台硬件机器能很好的优化代码程序,那么可以很大程度节省硬件成本,而且对于大多数网站已经足够。

任何网站都需要考虑的一个问题是,如何提高并发访问量,我们追求一个字,就是“快”,用户需要的东西,能在尽可能短的时间内给予

基本原则

  • 避免重复
  • 减少数据量
  • 提前准备好


我用过的方法,具体项目参考《C++开发的论坛系统 - BBS》

前端

html

  • html文件gzip预压缩
  • 减少文件的包含,比如js、css,页面文件专用的js、css直接包含在页面文件中
  • 页面遮挡部分不完全加载,比如滚动条滚动到时在临时加载,比如图片
  • 页面中的动态部分使用ajax动态处理,比如用户登录条

javascript

  • 对于大量的字符串拼接,使用push、join,而不用运算符+
  • 动态内容创建,能使用innerHTML的尽量使用innerHTML,而不用createElement
  • 页面包含javascript文件引用时,尽量置于页面文件底部
  • 整个网站通用的javascript功能集中在一个文件里,比如common.js
  • javascipt内容使用混淆压缩
  • 所有发布的javascript文件使用gzip压缩

css

  • 通用css样式集中到一个文件里,比如common.css
  • 将css内容进行压缩
  • 将css文件进行gzip压缩
  • 将页面包含css文件引用尽量放到页面文件顶部

图片

  • 资源图片,尽量使用sprite方式处理(注意不是所有图片都适合这种方式)
  • 用户上传图片,server端在不影响图片质量的情况下,对尺寸及像素进行压缩,单张图片以300k为上限

后端

动态页

  • ajax方式局部获取动态数据,使用js方式动态渲染页面
  • 页面模板替换部分顺序处理,而不是请求是临时替换

数据库

  • 使用NoSQL数据库,而不用关系数据库(不是所有的项目都适合NoSQL)
  • 只处理所需数据,而不是对整个数据行进行操作
  • 减少事务的处理占用时间
  • 创建索引

其他

  • 动态网页静态化处理,比如首页对数据库的操作比较多,而访问量又比较大,使用定期更新首页成html文件

抱歉!评论已关闭.