云客Drupal源码分析之渲染缓存RenderCache

本文详细探讨了Drupal8中渲染缓存RenderCache的工作原理,包括渲染数组的简化、缓存条件、双重缓存策略以及缓存重定向问题。通过具体的例子解释了渲染前后的缓存ID如何影响数据获取,并介绍了占位渲染缓存PlaceholderingRenderCache如何提高性能。
摘要由CSDN通过智能技术生成

渲染数组被渲染的时候,为了提高性能,会将渲染结果保存到缓存中,这样就避免了重复渲染
并且每个子元素的渲染结果都可以被独立缓存,如此一来子元素也可以避免重复渲染

不过缓存中保存的渲染数组是经过简化的,渲染缓存默认只缓存以下内容,这样经简化的数组叫做“CacheableRenderArray”:

 

$elements = [
      '#markup' => $elements['#markup'],
      '#attached' => $elements['#attached'],
      '#cache' => [
        'contexts' => $elements['#cache']['contexts'],
        'tags' => $elements['#cache']['tags'],
        'max-age' => $elements['#cache']['max-age'],
      ],
    ];


注意:它并不包括$elements['#cache']['keys']
默认如上,但是当我们也想缓存其他内容的时候怎么处理?可以这样:
指定$elements['#cache_properties'],它是一个数组,键值为想要缓存的元素的键名即可
比如在Drupal\Core\Render\MainContent\HtmlRenderer

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值