V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DannyZeng
V2EX  ›  程序员

对于 PHP 页面静态化的疑问

  •  
  •   DannyZeng · 2019-07-31 21:57:10 +08:00 · 2628 次点击
    这是一个创建于 1926 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    需要注意的点:
    使用 varnish 静态化的页面,尽量不要使用 cookie/post,如果需要,请把页面动态的地方拆出来(比如页面顶部登录 /未登录显示不一样),用 ajax 实现;或者缓存规则中加入更多条件,包括 url 参数和 cookie ;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3525 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:30 · PVG 18:30 · LAX 02:30 · JFK 05:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.