angular 能够全局禁用延迟块的能力,

cld4siwp  于 4个月前  发布在  Angular
关注(0)|答案(1)|浏览(52)

与功能请求相关的@angular/*包有哪些?

compiler

描述

能够全局禁用"Defer blocks",而无需在每个defer blocks上提供变量,这将是很有趣的。例如,当我进行Lighthouse时,我希望它能扫描整个页面,但由于defer blocks,这是不可能的,这使得报告在SEO或可访问性等方面变得不太相关。一些工具还分析整个页面的结构,例如检查可访问性最佳实践。要获得真正的报告,您需要滚动加载defer blocks。另一个例子是SSR,我们有一个每7小时运行一次的任务来缓存所有CMS页面。这些页面然后被提供给搜索引擎机器人。对于这种类型的页面,能够在渲染它们时禁用defer blocks(从而拥有所有内容)将从SEO的Angular 非常有用;能够将它们保留在CSR中将是很好的。
我认为我们已经可以实现这一点,但这需要在每个使用defer blocks的组件上注入一个配置令牌,这将带来很多样板代码。

建议的解决方案

一个全局禁用的配置令牌,可以通过提供者进行配置。这个令牌也可以在某些组件上提供(配置),以确保defer blocks不会被禁用,这意味着它将覆盖全局配置。

考虑过的其他方案

目前我能想到的就是这些了。

v1l68za4

v1l68za41#

这对于目前使用SSR和延迟加载的情况来说,是一个真正的阻碍。使用它来加速客户端渲染性能是一个巨大的好处,然而只要SSR中的回退是占位符,它就会对SEO造成噩梦。对我们来说,这意味着我们仍然需要在应用程序前面使用另一个服务进行预渲染。

相关问题