Likes Likes:  0
Resultaten 1 tot 5 van de 5
Geen
  1. #1
    Tjerk Wolterink
    PHP: Dynamic Image client caching
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    PHP: Dynamic Image client caching

    Ik genereer een plaatje mbv een dynamisch script,

    dus in html ziet het er zo uit
    <img src="image.php?width=100" />

    Maar nu flikkert het plaatje constant in mijn browser.
    Dus ik denk.. dat ligt aan caching... de browser zal het plaatje wel niet cachen.

    Dus heb ik in de header van de image het volgende meegestuurd:

    Cache-Control: public

    Maar dit wil ook niet werken.
    Wat moet ik doen?

  2. #2
    Maarten Wierda
    PHP: Dynamic Image client caching
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: Dynamic Image client caching

    Tjerk Wolterink wrote:

    > dus in html ziet het er zo uit <img
    > src="image.php?width=100" />
    >
    > Maar nu flikkert het plaatje constant in mijn browser.
    > Dus ik denk.. dat ligt aan caching... de browser zal het
    > plaatje wel niet cachen.


    <snip>

    > Wat moet ik doen?


    Ik zal René voor zijn, meer informatie geven over image.php.

    --
    Cheers,
    Maarten Wierda

    "After MELVINS finished a 23-minute opener of
    'Charmicarmicat', one knob yelled
    'Your guitar's tuned now!',
    to which Buzz snapped,
    'SHUT UP, FAG!!!'... "

  3. #3
    Daniel Tryba
    PHP: Dynamic Image client caching
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: Dynamic Image client caching

    Tjerk Wolterink <tjerk@wolterinkwebdesign.com> wrote:
    > Ik genereer een plaatje mbv een dynamisch script,
    >
    > dus in html ziet het er zo uit
    > <img src="image.php?width=100" />
    >
    > Maar nu flikkert het plaatje constant in mijn browser.


    Huh! Zomaar of tijdens een reload?

    > Dus ik denk.. dat ligt aan caching... de browser zal het plaatje wel
    > niet cachen.
    >
    > Dus heb ik in de header van de image het volgende meegestuurd:
    >
    > Cache-Control: public


    Dan mag er gecached worden.

    > Maar dit wil ook niet werken. Wat moet ik doen?


    Je moet echter ook nog even een mechanisme verzinnen waarmee de
    geldigheid van de eventueel door de browser gecachte content kan worden
    vastgesteld.

    Normaal gesproken stuurt men voor statische content een last-modified
    header mee. Daarmee weet de browser dus of het cached image nog actueel
    is, tevens kunnen dan conditionele requests naar genoemde URL gemaakt
    worden (als in: if-not-modified-since (of juist if-modified-since)). Aan
    jou php script om dan zinnig af te handelen (in de head/get/post requests).

    Andere veelvuldig gebruikte methode is om een expires header mee tegeven
    met een tijd tot welke de url geldig is, als het plaatje sporadisch
    veranderd maar vrijwel nooit binnen een "sessie" zou je dat bv 1 uur in
    de toekomst kunnen zetten.

    Een en ander staat omslachtigomschreven in de betreffende rfc:
    2616 HTTP/1.1


  4. #4
    Daniel Tryba
    PHP: Dynamic Image client caching
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: Dynamic Image client caching

    Daniel Tryba <spam@tryba.invalid> wrote:
    > Aan jou php script om dan zinnig af te handelen (in de head/get/post
    > requests).


    Voorbeeld code uit smarty, met zo te zien de nodige lamheid in timestamp
    controle:

    if ($this->cache_modified_check) {
    $_server_vars = ($this->request_use_auto_globals) ? $_SERVER : $GLOBALS['HTTP_SERVER_VARS'];
    $_last_modified_date = @substr($_server_vars['HTTP_IF_MODIFIED_SINCE'], 0, strpos($_server_vars['HTTP_IF_MODIFIED_SINCE'], 'GMT') + 3);
    $_gmt_mtime = gmdate('D, d M Y H:i:s', $this->_cache_info['timestamp']).' GMT';
    if (@count($this->_cache_info['insert_tags']) == 0
    && !$this->_cache_serials
    && $_gmt_mtime == $_last_modified_date) {
    if (php_sapi_name()=='cgi')
    header("Status: 304 Not Modified");
    else
    header("HTTP/1.1 304 Not Modified");

    } else {
    header("Last-Modified: ".$_gmt_mtime);
    echo $_smarty_results;
    }
    }



  5. #5
    Tjerk Wolterink
    PHP: Dynamic Image client caching
    Gast
    n/a Berichten
    Berichten zijn liked



    Thread Starter

    Re: PHP: Dynamic Image client caching

    Maarten Wierda wrote:

    > Tjerk Wolterink wrote:
    >
    >> dus in html ziet het er zo uit <img
    >> src="image.php?width=100" />
    >>
    >> Maar nu flikkert het plaatje constant in mijn browser. Dus ik denk..
    >> dat ligt aan caching... de browser zal het
    >> plaatje wel niet cachen.

    >
    >
    > <snip>
    >
    >> Wat moet ik doen?

    >
    >
    > Ik zal René voor zijn, meer informatie geven over image.php.
    >


    mm ik snap niet waarom je daar meer info over wil.
    Het gaat toch in principe alleen over de http headers die ik mee stuur?

    maarja:

    <?php

    /**
    * This script creates thumbnails
    * from uploaded images.
    * This wil reduce network traffic and
    * increase the speed of the site to show up
    */

    include "logic.php";

    $image=array_key_exists("image", $_GET) ? $_GET["image"] : false;
    $newwidth=array_key_exists("width", $_GET) ? $_GET["width"] : false;
    $newheight=array_key_exists("height", $_GET) ? $_GET["height"] : false;

    $filename=$upload_dir."/".$image;

    if($image==false || !file_exists($filename)) {
    die("image does not exists");
    }

    list($width, $height, $type, $attr)=getimagesize($filename);
    header("Content-type: ".image_type_to_mime_type($type));
    header("Cache-Control: public");

    $img=imagecreatefromfile($filename);

    $resized_img=resize_image($img, $width, $height, $newwidth, $newheight);

    $resized_shadow_img=image_dropshadow(
    $resized_img,
    $newwidth, $newheight,
    array("r"=>231, "g"=>214, "b"=>247)
    );

    outputimage($resized_shadow_img, $type);

    imagedestroy($resized_img);
    imagedestroy($resized_shadow_img);
    imagedestroy($img);

    ?>

Webhostingtalk.nl

Contact

  • Rokin 113-115
  • 1012 KP, Amsterdam
  • Nederland
  • Contact
© Copyright 2001-2026 Webhostingtalk.nl.
Web Statistics