• 请不要在回答技术问题时复制粘贴 AI 生成的内容
DannyZeng
V2EX  ›  程序员

对于 PHP 页面静态化的疑问

  •  
  •   DannyZeng · Jul 31, 2019 · 3447 views
    This topic created in 2505 days ago, the information mentioned may be changed or developed.

    找了下资料,两个方向,一个是模板,一个是 ob 函数。模板由于现在的趋势是前后端分离,基本淘汰了。ob 函数一搜的话,又都是几年前的,近一两年的少。 问题:就目前的工作情况中,页面静态化是否被淡化或者说由于其他方面性能的提升被弱化了?(我只是想偷下懒,如果不重要我就不学了)

    15 replies    2019-08-01 13:19:16 +08:00
    starsriver
        1
    starsriver  
       Jul 31, 2019 via Android
    php 不是纯后台语言吗?(狗头)
    当个中间件就好了嘛。
    静态的东西给前端
    TangMonk
        2
    TangMonk  
       Jul 31, 2019 via iPhone
    Ngnix 直接缓存就好了吧
    kina100
        3
    kina100  
       Jul 31, 2019
    没有,静态化依然是提升性能极为重要的一个功能,只是现在这样类似于新闻门户的网站不多了,越来越多的流量被微信啊,头条啊拿走了,大浪淘沙后,单纯的网站吧,小站在不被爆破的情况下静态化体现不出来,大战你静态化也一样被挤爆,都是 cdn 的。
    areless
        4
    areless  
       Jul 31, 2019 via Android
    你放心好了,等前端娱乐圈熄火了。页面静态化又会回来的~~~到时候换个更酷炫的名字:PHPGPU 纯静态 web 渲染 cache
    akira
        5
    akira  
       Jul 31, 2019
    大部分网站的负荷之低 以至于完全不需要静态化

    做好伪静态,前面套个 CDN,nginx 配置下缓存,基本上也都能对付过去了
    simonlu9
        6
    simonlu9  
       Jul 31, 2019
    对应前后端分离,不需要静态页面,静态页面都是针对于门户,论坛,seo 友好化,访问加速
    zjsxwc
        7
    zjsxwc  
       Jul 31, 2019 via Android
    翻译下楼主的话:

    php 输出 html 的疑惑
    找了下资料,两个方向,一个是模板输出 html,一个是 ob 函数输出 html。 由于前后端分离,服务端输出 html 的方式现在已经被淘汰了。 问题:就目前的工作情况中,服务端返回 html 是否被淡化或者说由于其他方面性能的提升被弱化了?(我只是想偷下懒,如果不重要我就不学了)
    GG668v26Fd55CP5W
        8
    GG668v26Fd55CP5W  
       Jul 31, 2019 via iPhone
    类似超级缓存,用得好可以极大的减少对 MySQL 和 php 的压力。织梦有个生成 html 的功能,WordPress 有个 advanced cache。
    hostpai
        9
    hostpai  
       Jul 31, 2019
    访问量不大的情况下,静态没啥用,对网站没啥作用,现在搜索引擎对静态动态的抓取没什么区别。
    GG668v26Fd55CP5W
        10
    GG668v26Fd55CP5W  
       Jul 31, 2019 via iPhone
    感觉楼主说的是服务器渲染,和我说的不是一个东西
    jugelizi
        11
    jugelizi  
       Jul 31, 2019
    前后端分离 接口数据进缓存呗
    2kCS5c0b0ITXE5k2
        12
    2kCS5c0b0ITXE5k2  
       Jul 31, 2019
    瓶颈不都是先出现在数据库上的吗 返回数据做缓存
    ducklyl
        13
    ducklyl  
       Aug 1, 2019
    前后端分离,后端就没必要缓存 html,可以考虑在后端数据接口做缓存,效果一样。比如在 php 与 db 之前,可以缓存。
    jabin88
        14
    jabin88  
       Aug 1, 2019
    前后端分离 接口通过 cdn 缓存,这个方式可以吗
    jevonszmx
        15
    jevonszmx  
       Aug 1, 2019
    其实没必要让 php 去处理这个,缺点很明显:
    1、程序要做很多工作,必然会有性能损失;
    2、数据更新不及时(类似新闻页这种,如果有几百上千万页,Q — Q ),改动不灵活;

    建议在 web 服务器前端,再采用 varnish 来做一层缓存,然后配置好 varnish 规则,就可以解决静态化的问题.

    需要注意的点:
    使用 varnish 静态化的页面,尽量不要使用 cookie/post,如果需要,请把页面动态的地方拆出来(比如页面顶部登录 /未登录显示不一样),用 ajax 实现;或者缓存规则中加入更多条件,包括 url 参数和 cookie ;
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   964 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 19:29 · PVG 03:29 · LAX 12:29 · JFK 15:29
    ♥ Do have faith in what you're doing.