
Ha a javascript fetch utasítást használjuk előfordul, hogy a Drupal cache-ből adja vissza az adatot.
Ha a szerver oldalon változik a fájl, akkor meg kell tiltani a böngészőnek, hogy a szerver a cache-t használja. Az alábbi példában a cache: no-cache fejlécet küldjük át a szervernek! ez egy progress bar kód, amely a szerver oldalon zajló folyama %-os értékét jelzi ki.
smpl.progress = function(on, timer) {
$(".ajax-progress-fullscreen").remove();
if(typeof on !== 'undefined' && on)
{
if(typeof timer !== undefined && timer){
smpl.timer = "0%";
$( "#smpl_progress" ).text(smpl.timer);
$( "#smpl_progress" ).show();
}
$('body').after( Drupal.theme.ajaxProgressIndicatorFullscreen() );
$('body').css( "cursor","progress" );
if( smpl.timer === "0%" && typeof timer !== undefined && timer ){
smpl.timer = setInterval( function(){
fetch("localhost/fw3/sites/default/files/smplphotoalbum/jelzo.txt", {cache: "no-cache"})
.then( response => response.text() )
.then( data => {
$("#smpl_progress").text( data );
})
.catch( error => console.error("error:", error) ) ;
}, 2000 );
}
}else{
$('body').css("cursor","default");
$("#smpl_progress").hide();
clearInterval(smpl.timer);
smpl.timer = "0%";
}
};
Ez a példa a szerver oldalról egy text fájl tartalmát olvassa be 2 másodpercenként. Ha cache-ből szolgálja ki a szerver, akkor mindig ugyanaz a tartalom jön át, ezért a progress bar nem működik.