dtrgqjcd877528 2014-07-22 18:24
浏览 41
已采纳

如何防止智能横幅元标记的缓存?

Our client has requested that we add smart banners to our mobile site for both iOS and Android. We've implemented the meta tags required:

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

This works. (We're using the jquery.smartbanner plugin for Android.)They've now amended the requirement; they want the banner to display only on the home page of the site, and only the first time the user hits the home page in a session.

<?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;
?>

It gets the homepage part; it only displays there. But it seems to be ignoring the check for the session variable. I've error logged things out, and even when the session variable is set (indicating that the banner should not show), the banner is still displaying.

The only reason I can think of for this is that the meta tags are being cached. Is there any way to granularly control the caching of meta tags? I don't want to use any of the http-equiv meta tags, because as far as I can tell that would affect the entire site, not just the individual tags.

If anyone can think of another reason this wouldn't be working, I'm all ears. I've been staring at this for way too long, and may be missing something obvious.

  • 写回答

1条回答 默认 最新

  • dongmiao260399 2014-07-22 19:09
    关注

    Empty($var) will return True if $var is not set or equal to FALSE so in all case for you.

    Rename showSmartBanner to dontShowSmarBanner and set it to True when the user see the banners.

    <?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;
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line