PHP image generation & caching

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mr WZ Boson

    #1

    PHP image generation & caching

    Hello,

    I hope you can help - I'm a bit new to PHP.

    My basic problem is with a page (HTML) which is intended to display an
    image slideshow. On this page there are a number of links to click
    (one for each slideshow topic) and a "TV screen" to view the results.

    The images are stored on the server as (big) JPG files - and when they
    are downloaded for the slideshow, I resize them with a PHP script
    "im.php" :

    $filename = $_GET['filename'];
    header('Content-type: image/jpeg');
    ..
    ..... open $filename & do the resizing
    ..
    imagejpeg( ...


    After a link is selected, I preload the set of images with Javascript
    by doing :

    im[i].src = "php/im.php?filename =" + getFName(i); // for each in the
    set

    where getFname(i) returns the i'th image in the set.

    I then start the slideshow (I've got things in the Javascript to make
    sure all images are preloaded before starting)

    Now, my problem is that the browser doesn't seem to be caching the
    images and keeps making server requests during the slidehow (which
    rather defeats the idea of pre-loading)

    If I "cheat" and replace the preloading with :

    im[i] = getFName(i);

    it works fine (i.e I can switch the server off & it continues to show
    the slideshow).

    This happens with all browsers I've tried (IE6, Firefox, Netscape)

    Hope all this makes sense & would appreciate your expert advice.

    Mr WZ Boson
  • Daniel Tryba

    #2
    Re: PHP image generation & caching

    Mr WZ Boson <WZ_Boson@yahoo .co.uk> wrote:[color=blue]
    > This happens with all browsers I've tried (IE6, Firefox, Netscape)
    >
    > Hope all this makes sense & would appreciate your expert advice.[/color]

    Get a packetsniffer (like ethereal) and study the differences in request
    and response headers. Also a working example would be nice so "we" will
    not have to code (and maybe do something completly different) to see
    what you are actually talking about.

    Comment

    • cyberhorse

      #3
      Re: PHP image generation &amp; caching

      I would also guess that browsers by now have learned not to cache
      dynamic pages and when they see im.php?somethin g they will either
      detect it as dynamic page or as unknown file type and not cache it
      perhaps. When you put the real filename however, they have no problem
      saving the .jpg image in their cache. Another thing to look at is if
      you disable caching somewhere in your im.php file via header() function
      calls or something like that.

      Comment

      • Robert Tweed

        #4
        Re: PHP image generation &amp; caching

        URLs with a querystring (i.e., ones that contain a "?") do not get cached by
        the browser.

        - Robert


        Comment

        • John Dunlop

          #5
          Re: PHP image generation &amp; caching

          Robert Tweed wrote:
          [color=blue]
          > URLs with a querystring (i.e., ones that contain a "?") do not get cached by
          > the browser.[/color]

          That depends on the caching directives. Responses to such
          requests are cacheable if they include explicit expiration
          times. See HTTP/1.1 sec. 13.9.



          --
          Jock

          Comment

          • Chung Leong

            #6
            Re: PHP image generation &amp; caching

            "Mr WZ Boson" <WZ_Boson@yahoo .co.uk> wrote in message
            news:c1d9a813.0 412131118.21a01 b0e@posting.goo gle.com...[color=blue]
            > Hello,
            >
            > I hope you can help - I'm a bit new to PHP.
            >
            > My basic problem is with a page (HTML) which is intended to display an
            > image slideshow. On this page there are a number of links to click
            > (one for each slideshow topic) and a "TV screen" to view the results.
            >
            > The images are stored on the server as (big) JPG files - and when they
            > are downloaded for the slideshow, I resize them with a PHP script
            > "im.php" :
            >
            > $filename = $_GET['filename'];
            > header('Content-type: image/jpeg');
            > .
            > .... open $filename & do the resizing
            > .
            > imagejpeg( ...
            >
            >
            > After a link is selected, I preload the set of images with Javascript
            > by doing :
            >
            > im[i].src = "php/im.php?filename =" + getFName(i); // for each in the
            > set
            >
            > where getFname(i) returns the i'th image in the set.
            >
            > I then start the slideshow (I've got things in the Javascript to make
            > sure all images are preloaded before starting)
            >
            > Now, my problem is that the browser doesn't seem to be caching the
            > images and keeps making server requests during the slidehow (which
            > rather defeats the idea of pre-loading)
            >
            > If I "cheat" and replace the preloading with :
            >
            > im[i] = getFName(i);
            >
            > it works fine (i.e I can switch the server off & it continues to show
            > the slideshow).
            >
            > This happens with all browsers I've tried (IE6, Firefox, Netscape)
            >
            > Hope all this makes sense & would appreciate your expert advice.
            >
            > Mr WZ Boson[/color]

            Well, if you want the browser to cache the images, then the images really
            aren't dynamic now, are they? So why border serving them dynamically using a
            PHP script? I mean you are making your server process the same image over
            and over again. Just save the smaller versions of the images in a separate
            folder and let the web server handle them.


            Comment

            • cyberhorse

              #7
              Re: PHP image generation &amp; caching

              true, yet not always applicable. What if he changes the images very
              often? It's much easier just to drop the new images in, rather than
              making two copies of each image, etc. :) After all that's what
              computers are for - to do the dirty and repetative job for us.
              Of course on the other hand he can have a script to do the resizing
              also automatically ... but that "if" situations are endless :)

              Comment

              Working...