开发者社区> 问答> 正文

有关网站静态化问题

为了达到高性能web的访问的效果 ,最有效的方法就是网站的静态化了,生成html访问。比如,做一个cms,有一些地方大家是怎么解决的呀?

  • 分类列表页生成机制?
    是后台定成生成,还是有新文章的时候,就生成分类列表页?还是不生成?
  • 文章页面
    文章页面,有几个动态的问题,比如,阅读次数,评论,对于这些静态中常变的部分,采用什么机制呢?

展开
收起
落地花开啦 2016-06-16 13:55:05 2261 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    网站静态化,并不一定非要靠写代码实现整站 HTML 的生成,有些工具能提供非常好的缓存机制。在 Web 开发中,最关键的瓶颈往往在于数据库,减少数据库的读写压力,就是缓存的主要作用。

    在可以提供缓存功能的工具中,应用层的可以用 Memcache 和 Redis,前端缓存可以用 Varnish 和 Nginx 的提供的缓存功能,当然还要合理利用 304 状态码。

    以 Memcache 和 Redis 为例,它们的作用是让你能够把数据库的数据保存在内存或者是磁盘文件上,这样每次请求过来你仍然可以通过程序来控制业务逻辑,但是极大地减少了数据库的访问,性能自然提升。

    而对于 Varnish 和 Nginx 这样具有反向代理功能的工具来说,它们的作用就是将第一次动态请求的页面缓存起来,在过期时间内,接下来的请求返回的都是缓存里的数据,不再向后端服务器发起请求。

    而对于你后面的问题,阅读次数,评论这些静态中常变的部分,使用不同工具的情况下也有不同的解决方法。

    文章的阅读次数 —— 使用应用层缓存的情况下,可以先把阅读次数写入到缓存中,在后台写个脚本定期从缓存中读出来写入到数据库里。使用前端缓存的情况,可以用 Ajax 异步调用把阅读次数写入到数据库中,如果写压力大的话,就像使用应用层缓存一样,先写入缓存,再写脚本定期读。

    2019-07-17 19:40:46
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载