【问题标题】:Is it possible to have randomness in server-side includes?是否有可能在服务器端包含随机性?
【发布时间】:2009-09-02 06:07:34
【问题描述】:

我想在一个静态的 html 文件中引入一些随机*行为。我想尝试两种不同的广告方案,并且我想让页面随机使用其中一种。使用脚本语言来生成整个东西似乎有点矫枉过正,所以我认为 SSI 会是理想的选择。

我想做这样的事情:

<!--#if expr="shouldIdoA" -->
... do A ...
<!--#else -->
... do B ...
<!--#endif -->

我不确定的部分是如何在 A 或 B 之间做出决定。

* 我真的只是希望它在大约 50% 的时间里以一种方式运行,在 50% 的时间里以另一种方式运行,所以真正的随机性并不重要。即使是像决定当前时间的秒部分是偶数还是奇数这样简单的事情也对我有用。

【问题讨论】:

    标签: random server-side-includes


    【解决方案1】:

    在我写问题的最后一部分时,我开始思考如何利用这段时间做我需要的事情。我想出了一个绝非随机的 workign 解决方案,但它确实以一种均匀的方式提供了一个广告或另一个广告。

    <!--#config timefmt='%S' -->
    <!--#if expr='$DATE_LOCAL > 30' -->
    ... do A ...
    <!--#else -->
    ... do B ...
    <!--#endif -->
    

    所以,如果我们在前半分钟,这将提供一个版本,如果我们在后半分钟,则提供另一个版本。

    如果您知道任何不同/更好的方法,请加入!

    【讨论】:

      【解决方案2】:

      不,不可能;这样做的 SSI 方法是包含或执行服务器端 CGI,或者可能在服务器上运行命令。

      首选:

      <!--#include virtual="/cgi-bin/random-number.cgi?max=1" -->
      

      好的,但不是首选:

      <!--#exec cgi="/cgi-bin/random-number.cgi" -->
      

      这很可能未启用:

      <!--#exec cmd="perl /inet/cgi-bin/random-number.pl 0 1" -->
      

      但是你正在编写一个简短的 perl 脚本来给你一个随机数,而这正是你试图避免的那种事情。抱歉,如果您真的想避免使用 javascript 或 PHP 来做,您的解决方案和变体就足够了。

      【讨论】:

        猜你喜欢
        • 2019-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-05
        • 2010-11-18
        • 2019-03-29
        • 2012-07-29
        • 2010-11-14
        • 2011-06-30
        相关资源
        最近更新 更多