【问题标题】:How can I prevent caching of smart banner meta tags?如何防止缓存智能横幅元标记?
【发布时间】:2014-09-13 17:16:47
【问题描述】:

我们的客户要求我们为我们的移动网站添加适用于 iOS 和 Android 的智能横幅。我们已经实现了所需的元标记:

<meta name="apple-itunes-app" content="app-id=ourAppID">
<meta name="google-play-app" content="app-id=ourAppID">

这行得通。 (我们在 Android 上使用 jquery.smartbanner plugin。)他们现在修改了要求;他们希望横幅仅显示在网站的主页上,并且仅在用户在会话中第一次点击主页时显示。

<?php  
if (empty($_SESSION['showSmartBanner']) && $_SERVER['REQUEST_URI'] === '/' ): ?>
    <meta name="apple-itunes-app" content="app-id=ourAppID">
    <meta name="google-play-app" content="app-id=ourAppID">
<?php
    $_SESSION['showSmartBanner'] = false;
    endif;
?>

获取首页部分;它只显示在那里。但它似乎忽略了对会话变量的检查。我错误地记录了一些东西,即使设置了会话变量(表明横幅不应该显示),横幅仍然显示。

我能想到的唯一原因是元标记正在被缓存。有什么方法可以精细控制元标记的缓存吗?我不想使用任何 http-equiv 元标记,因为据我所知,这会影响整个网站,而不仅仅是单个标记。

如果有人能想到另一个不起作用的原因,我会全力以赴。我盯着这个看太久了,可能遗漏了一些明显的东西。

【问题讨论】:

    标签: php android jquery caching meta-tags


    【解决方案1】:

    如果$var 未设置或等于 FALSE,Empty($var) 将返回 True,因此在所有情况下都适合您。

    将 showSmartBanner 重命名为 dontShowSmarBanner 并在用户看到横幅时将其设置为 True。

    <?php  
    if (empty($_SESSION['dontShowSmartBanner']) && $_SERVER['REQUEST_URI'] === '/' ): ?>
        <meta name="apple-itunes-app" content="app-id=ourAppID">
        <meta name="google-play-app" content="app-id=ourAppID">
    <?php
        $_SESSION['dontShowSmartBanner'] = true;
        endif;
    ?>
    

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多