样式表切换和缓存

时间: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. 如果它发现对以前的样式表进行了更改,将阻止缓存,并加载新的样式表。

    结束

    相关推荐

    将css动态添加到可视化编辑器中

    我为我的主题创建了一个选项页面,在这里我可以手动编辑CSS假设我在选项页面中更改<H1> 标记,因此它现在将在前端更改它我还想在可视化编辑器中更改它。我已经添加了函数add_editor_style(style.php); 在style.php 我在上面写着<?php header(\'Content-type: text/css\'); ?> 因此它可以识别文件。但现在我无法动态获取选项。。。我应该如何做到这一点?编辑这在函数中。add_fil