http://qs321.pair.com?node_id=74514


in reply to CGI Caching question

In addition to using the correct HTTP headers, I've had some success in using unique IDs appended to the script URL as the path info. e.g.: http://domain/script.pl/UNIQUE_ID

Replies are listed 'Best First'.
Re: Re: CGI Caching question
by dvergin (Monsignor) on Apr 22, 2001 at 09:20 UTC
    koolade's suggestion echoes an approach that has worked well for me. Here's a bit of (slightly verbose) code to illustrate:
    sub make_rand_str { my $num_chars = shift; my @possible_chr_array = @_; my $num_possibles = @possible_chr_array; my $rnd_str = ""; for (my $i=$num_chars; $i--;) { $rnd_str .= $possible_chr_array[rand($num_possibles)]; } return $rnd_str; } my $rnd_str = make_rand_str(4, "A".."Z", "0".."9"); my $url = "http://my/host/cgi/script.pl/$rnd_str",
      Aside from the no-cache pragma, which I find works for 98%+ of folks out there, I find the simplest and easiest way to create a unique string is just a call to time(); e.g.,
      $url = '/cgi-bin/script.pl?time=' . time();
      
      Using both of these things in combination results in 99.9% effectiveness in preventing caching. (Estimates based on a scientific survey created by top scientists which was just recently pulled out of my *.)