样式表切换和缓存 时间:2011-07-06 作者:anu 我正在实现一个允许用户切换样式表的网站(为视力障碍者显示高对比度版本)。切换器本质上只是改变<link>参考适当的样式表。然而,我刚刚意识到,当我打开缓存(使用WP Supercache或W3 Total Cache)时,这将导致出现问题,因为只有一个版本的页面将被缓存,从而显示给用户。对可能的解决方案有何想法? 3 个回复 最合适的回答,由SO网友:anu 整理而成 事实证明,答案相当简单(至少对于WP Supercache)。使用PHP或旧缓存(即不使用mod\\u rewrite)启用延迟初始化(从UI推荐的,或通过设置$wp_super_cache_late_init = 1; 在里面wp-content/wp-cache-config.php使用<!--dynamic-cached-content--> 指令包装应保持动态的内容例如:<!--dynamic-cached-content--><?php display_high_contrast_link(); ?><!-- display_high_contrast_link(); --><!--/dynamic-cached-content--> 如您所见,动态内容已经添加了两次—从WP Supercache FAQ第一段代码在缓存页面时执行,而第二段代码在缓存页面提供给下一个访问者时执行。 SO网友:Rarst 我使用W3TC,因此我可以想出以下方法:将页面的这一部分排除在外的片段缓存会降低缓存的整体效率。通过查询参数识别带有切换样式表的页面,禁用这些页面的缓存。通过URL端点识别带有切换样式表的页面,通过掩码禁用此类页面的缓存。通过JavaScript实现样式表切换(实际上不是特定于W3TC)。 SO网友:kaiser 想法:如果您将样式排队,请使用filemtime() 对于version. 如果它发现对以前的样式表进行了更改,将阻止缓存,并加载新的样式表。 结束 文章导航