zowel een .js, een .css, of .swf (of welke file je via http: included) wordt gecached als de UA hierop is ingesteld en de server hieraan een juiste header meestuurd.Op zondag 28 april 2002 02:41 schreef Gerwin het volgende:
Een .js bestandje die geincluded wordt in een html of php bestand wordt die ook opgeslagen in de cache
ook al is de file geincluded in een dynamisch gegenereerde pagina die meestal een no-cache-header heeft; de js file zal ge-cached blijven. (meestal zullen enkel last-modified times door UA vergeleken worden)
eehm, ja neem ik aan, wilde je dan iedere keer een nieuwe file maken?kan deze hergebruikt worden ook als er dingen aan de .html of .php veranderd zijn?
het includen van externe js of css om deze voor meerdere pagina's te laten functioneren (voor .js als een lib bv.) is de belangrijkste reden hiervoor te kiezen (behalve natuurlijk ook overzichtelijkheid)
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Ik denk dat er dynamische elementen in het js scriptje zitten, en dat je die met php wilt aanpassen. Je kunt gewoon een php file includen met daarin je javascript.
bv:
bv:
code:
1
2
3
4
| function jsFunction {
var uselessVar = <? echo $data; ?>;
return uselessVar;
} |
oogjes open, snaveltjes dicht
Met hergebrui bedoel ik dat ik bijvoorbeeld een js include op een php pag:Op zondag 28 april 2002 03:21 schreef RM-rf het volgende:
[..]
zowel een .js, een .css, of .swf (of welke file je via http: included) wordt gecached als de UA hierop is ingesteld en de server hieraan een juiste header meestuurd.
ook al is de file geincluded in een dynamisch gegenereerde pagina die meestal een no-cache-header heeft; de js file zal ge-cached blijven. (meestal zullen enkel last-modified times door UA vergeleken worden)
[..]
eehm, ja neem ik aan, wilde je dan iedere keer een nieuwe file maken?
het includen van externe js of css om deze voor meerdere pagina's te laten functioneren (voor .js als een lib bv.) is de belangrijkste reden hiervoor te kiezen (behalve natuurlijk ook overzichtelijkheid)
PHP:
1
| <? echo("<script language=\"javascript\" src=\"" . echo($datum) . ".js\"></script>");?> |
de file heeft dan als naam zoiets 20021005.js ofzo. Maar de volgende dag is die file niet veranderd maar is er gewoon een file voor de volgende dag bijgekomen. Zoals ik het begrijp wordt het bestandje wel degelijk opgeslagen in de cache. Is het dan toch verstandig een header mee te geven in die .js file dus eigenlijk van die .js een .php te maken met javascript taal erin en een header met php?
Nee ik wil juist dat ie in de cache komt.Op zondag 28 april 2002 17:59 schreef Gordijnstok het volgende:
Wellicht dat je het kunt faken, door de .js aan te roepen met js?anticache=randominteger
Wat is precies je doel? Ik snap niet goed wat je wilt bereiken, of misschien begrijp jij zelf iets niet.
oogjes open, snaveltjes dicht
Kijk ik heb een website... die is gemaakt in php. Elke dag komt er een stukje bij op de site dat staat in een .js bestandje. De laatste 7 dagen schuiven telkens naar beneden. Nu wil ik dat die 6 dagen die dus al bekend waren uit de cache gehaald worden in de 6 .js bestandjes die al bekend waren.Op zondag 28 april 2002 18:23 schreef Don Facundo het volgende:
Wat is precies je doel? Ik snap niet goed wat je wilt bereiken, of misschien begrijp jij zelf iets niet.
erhmm...
dit is er dus zoeen uit de categorie:
[edit]
Oftewel: je kan beter een andere oplossing zoeken dan deze, want je kan niet regelen wat er voor hoeveel dagen gecacht moet worden voor een client. (jah, het kan wel, maar dan zit je nog met proxy's enzo.)
Include lekker gewoon alles in 1 bestandje. scheelt je een hoop moeite.
dit is er dus zoeen uit de categorie:
waarom makkelijk doen als het moeilijk kan
[edit]
Oftewel: je kan beter een andere oplossing zoeken dan deze, want je kan niet regelen wat er voor hoeveel dagen gecacht moet worden voor een client. (jah, het kan wel, maar dan zit je nog met proxy's enzo.)
Include lekker gewoon alles in 1 bestandje. scheelt je een hoop moeite.
Word denk ik tijd om je wat meer te verdiepen in webdevelopment. .js duidt op javascript files. Dit is code die client-side draait. Meestal gebruikt om interactiviteit met de gebruiker clientside mogelijk te maken. Niet voor het opbouwen van de website, dat doe je met php + html. Met php kun je wel dynamisch javascript aanmaken. Snap ook niet wat die .js bestandjes allemaal moeten doen..Op zondag 28 april 2002 18:27 schreef Gerwin het volgende:
[..]
Kijk ik heb een website... die is gemaakt in php. Elke dag komt er een stukje bij op de site dat staat in een .js bestandje. De laatste 7 dagen schuiven telkens naar beneden. Nu wil ik dat die 6 dagen die dus al bekend waren uit de cache gehaald worden in de 6 .js bestandjes die al bekend waren.
oogjes open, snaveltjes dicht
Verwijderd
Kan ook ServerSide draaien hoorOp zondag 28 april 2002 19:38 schreef Don Facundo het volgende:
[..]
Word denk ik tijd om je wat meer te verdiepen in webdevelopment. .js duidt op javascript files. Dit is code die client-side draait.
1) document.writeMeestal gebruikt om interactiviteit met de gebruiker clientside mogelijk te maken. Niet voor het opbouwen van de website, dat doe je met php + html.
2) php maakt geen website op dat doet HTML, php translated alleen naar html
3) Je hoeft het niet met PHP te doen, het kan ook met JSP, ASP, CFM, etc.
Probeer de topicstarter even wat in banen te leiden....
oogjes open, snaveltjes dicht
Volgens mij is het nog niet helemaal duidelijk. Ik heb 6 bestandjes waarin dingen dedefinceert staan die op de site wordt gebruikt, lappen tekst enz. Elke dag komt er een lap tekst bij, maar lappen van 6 dagen geleden blijven hetzelfde deze staan in aparte .js bestandjes.
Nu wil ik dat ik bijvoorbeeld vandaag de website bezoek dat al die .js in de cache komen en als ik morgen de site bezoek dat ik enkel de index.php hoef op te halen en één nieuw bestandje en niet de 6 bestandjes.
Ven webdevelopment weet ik al genoeg hoor, alleen rijst bij mij die vraag op of het mogelijk is .js bestandjes te cachen zodat de bezoeker niet telkens alles hoeft te laden, waardoor de website niet 30 seconden duurt om te laten, maar 3.
Nu wil ik dat ik bijvoorbeeld vandaag de website bezoek dat al die .js in de cache komen en als ik morgen de site bezoek dat ik enkel de index.php hoef op te halen en één nieuw bestandje en niet de 6 bestandjes.
Ven webdevelopment weet ik al genoeg hoor, alleen rijst bij mij die vraag op of het mogelijk is .js bestandjes te cachen zodat de bezoeker niet telkens alles hoeft te laden, waardoor de website niet 30 seconden duurt om te laten, maar 3.
Als je voor 30 seconde laadtijd aan text op 1 pagina hebt dan zou ik me eens verdiepen in de term navigatieOp maandag 29 april 2002 15:43 schreef Gerwin het volgende:
Ven webdevelopment weet ik al genoeg hoor, alleen rijst bij mij die vraag op of het mogelijk is .js bestandjes te cachen zodat de bezoeker niet telkens alles hoeft te laden, waardoor de website niet 30 seconden duurt om te laten, maar 3.
Als er zoiets gecached moet worden zal dat serverside zijn, niet clientside, want je weet niet of de gebruiker die bestanden al heeft. Het feit dat het 30 seconden duurt kan heel goed als je met javascript de pagina opbouwt. Even een klein voorbeeldje hoe je met pseudo php zoiets zou doen:Volgens mij is het nog niet helemaal duidelijk. Ik heb 6 bestandjes waarin dingen dedefinceert staan die op de site wordt gebruikt, lappen tekst enz. Elke dag komt er een lap tekst bij, maar lappen van 6 dagen geleden blijven hetzelfde deze staan in aparte .js bestandjes.
Nu wil ik dat ik bijvoorbeeld vandaag de website bezoek dat al die .js in de cache komen en als ik morgen de site bezoek dat ik enkel de index.php hoef op te halen en één nieuw bestandje en niet de 6 bestandjes.
Ven webdevelopment weet ik al genoeg hoor, alleen rijst bij mij die vraag op of het mogelijk is .js bestandjes te cachen zodat de bezoeker niet telkens alles hoeft te laden, waardoor de website niet 30 seconden duurt om te laten, maar 3.
code:
1
2
3
4
5
6
| <header>
result = query("SELECT title, body, date FROM news ORDER BY PostDate DESC LIMIT 0, 6");
while ($row = fetch(result)) {
makenewspost($row);
}
</header> |
Dit is sneller, betrouwbaarder dan die hele vreemde manier waarop jij het nu doet.
oogjes open, snaveltjes dicht
Verwijderd
Server-side cachen levert voor de client geen voordeel op, alleen voor de server. Client-side cachen voorkomt dat de browser een pagina/script/stylesheet opnieuw gaat ophalen, en dit geeft een flinke boost bij het later nog eens laden van de pagina, daar gecachede bestanden al client-side staan.Op maandag 29 april 2002 18:06 schreef Don Facundo het volgende:
Als er zoiets gecached moet worden zal dat serverside zijn, niet clientside, want je weet niet of de gebruiker die bestanden al heeft.
Waar is deze uitspraak op gebaseerd? Het ophalen van een pagina kost de meeste tijd, het weergeven is slechts een kleine fractie hiervan.Het feit dat het 30 seconden duurt kan heel goed als je met javascript de pagina opbouwt.
En ik heb geen flauw idee waarom je nu met PHP/SQL komt aanzetten in een topic dat over cachen van javascript bestanden gaat.
It doesn't make any sense.
Gelukkig doet dat het wel. Wil je zeggen dat het voor de client niet uitmaakt als de pagina op de server al klaar staat of dat ie nog gegenereerd moet worden? Sommige methodieken ondersteunen zelfs het cachen van queries. Lijkt me volkomen logisch dat wanneer alles op de server sneller verwerkt wordt, het ook sneller bij de client voor de deur staat.Server-side cachen levert voor de client geen voordeel op, alleen voor de server. Client-side cachen voorkomt dat de browser een pagina/script/stylesheet opnieuw gaat ophalen, en dit geeft een flinke boost bij het later nog eens laden van de pagina, daar gecachede bestanden al client-side staan.
Ga maar lekker een pagina in javascript maken, alle data lekker in variablen, opbouwen van de elementen met js. Een beproefde methode. Not. En als je het topic leest zie dat hij het zelf over php heeft. Meerdere malen.Waar is deze uitspraak op gebaseerd? Het ophalen van een pagina kost de meeste tijd, het weergeven is slechts een kleine fractie hiervan.
En ik heb geen flauw idee waarom je nu met PHP/SQL komt aanzetten in een topic dat over cachen van javascript bestanden gaat.
It doesn't make any sense.
Makes perfect sense.
oogjes open, snaveltjes dicht
Verwijderd
Misschien begrijp je dit topic beter als je de source ervan bekijkt 
Rechtermuisknop, View Source
Rechtermuisknop, View Source
En waar is die source?
Edit:
LEEG!
Edit2:
Maar ik weet waarom het gaat nu, i see. Maar dan nog probeert deze meneer iets wazigs volgens mij.
Edit:
Edit2:
Maar ik weet waarom het gaat nu, i see. Maar dan nog probeert deze meneer iets wazigs volgens mij.
oogjes open, snaveltjes dicht
Ow ow ow... is dit nu zo moeilijk te snappen... nog één keer...
Ik heb op dit moment bijvoorbeeld de volgende bestandjes:
20021001.js 30kB
20021002.js 31kB
20021003.js 29kB
20021004.js 34kB
20021005.js 45kB
20021006.js 30kB
elke bestandje bevat data, tekst en variabelen...
elke dat komt er een nieuwe bij en deze wordt met een include op deze manier in een php code op de website geincluded:
<SCRIPT language="javascript" src="200210101.js"></SCRIPT>
de index.php veranderd dus met die javascript opdrachten en includes, elke dat schuift alles een dagje op.
Nu wil ik dat iemand die gister ook geweest is of eergister niet alle .js bestandjes moet ophalen. dus stel dat iemand geweest is en 20021001.js al heeft maar de rest nog niet dan wil ik dat die 20021001.js uit de cache komt. Maar hoe kan ik dat opgeven dat die ALTIJD gebeurd.
Ik heb op dit moment bijvoorbeeld de volgende bestandjes:
20021001.js 30kB
20021002.js 31kB
20021003.js 29kB
20021004.js 34kB
20021005.js 45kB
20021006.js 30kB
elke bestandje bevat data, tekst en variabelen...
elke dat komt er een nieuwe bij en deze wordt met een include op deze manier in een php code op de website geincluded:
<SCRIPT language="javascript" src="200210101.js"></SCRIPT>
de index.php veranderd dus met die javascript opdrachten en includes, elke dat schuift alles een dagje op.
Nu wil ik dat iemand die gister ook geweest is of eergister niet alle .js bestandjes moet ophalen. dus stel dat iemand geweest is en 20021001.js al heeft maar de rest nog niet dan wil ik dat die 20021001.js uit de cache komt. Maar hoe kan ik dat opgeven dat die ALTIJD gebeurd.
Gebruik je geen database ofzo?
Waarom zet je anders al je data anders niet gewoon in een database ipv. .js bestandjes?
Waarom zet je anders al je data anders niet gewoon in een database ipv. .js bestandjes?
Huh? Database, die gebruik ik inderdaad al, maar ik wil de laadtijd voor bezoekers zo kort mogelijk maken. Gaat dat met een database? Ik dacht dat bezoekers dan alsnog alles moeten laden en niet de bestandjes (dagen) die ze al gelezen hebben of al geladen hebben opnieuw geladen moeten worden.Op maandag 29 april 2002 21:04 schreef SirDupre het volgende:
Gebruik je geen database ofzo?
Waarom zet je anders al je data anders niet gewoon in een database ipv. .js bestandjes?
natuurlijk, maak een tabel aan "CREATE TABLE caching_webpage (INT caching_id AUTO_INCREMENT, CHAR(5) is_cached DEFAULT("true")) PRIMARY_KEY(caching_id)" en zet alle waardes op "true"Op woensdag 01 mei 2002 01:04 schreef Gerwin het volgende:
Huh? Database, die gebruik ik inderdaad al, maar ik wil de laadtijd voor bezoekers zo kort mogelijk maken. Gaat dat met een database?
nee dus, caching wordt geregeld in de hedaer van een file;
je kunt met een serverside-taal de files laten genereren en daarbij gelijk de header zetten (pragma, cache-control, expires) danwel je kunt de webserver voor files deze standaard mee laten sturen.
voor een *NIX server kun je kijken naar .htaccess om per directory eventueel aan extensies headers mee te geven, of in een server als IIS en mogelijk iPlanet/websphere kun je in de webinterface dit ongetwijfeld regelen (al dan niet met beperkingen)
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Dank je wel voor het antwoord en reactie, ik heb nog een tweetal vragen...Op woensdag 01 mei 2002 03:10 schreef RM-rf het volgende:
[..]
natuurlijk, maak een tabel aan "CREATE TABLE caching_webpage (INT caching_id AUTO_INCREMENT, CHAR(5) is_cached DEFAULT("true")) PRIMARY_KEY(caching_id)" en zet alle waardes op "true"
nee dus, caching wordt geregeld in de hedaer van een file;
je kunt met een serverside-taal de files laten genereren en daarbij gelijk de header zetten (pragma, cache-control, expires) danwel je kunt de webserver voor files deze standaard mee laten sturen.
voor een *NIX server kun je kijken naar .htaccess om per directory eventueel aan extensies headers mee te geven, of in een server als IIS en mogelijk iPlanet/websphere kun je in de webinterface dit ongetwijfeld regelen (al dan niet met beperkingen)
- hoe kun je een .js een header meegeven? is het mogelijk javascriptbestandjes een .php extentie te geven bijvoorbeeld door met php de header mee te geven, ik heb geen toegan g tot de configuratie van de server...
- wordt het bestandje door die include gecached ook als het bestand (index.php) veranderd is en opnieuw opgehaald wordt?
kennelijk waren mijn antwoorden in chinees, misschien moet ik deze keer in nederlands antwoorden;Op woensdag 01 mei 2002 17:49 schreef Gerwin het volgende:
[..]
Dank je wel voor het antwoord en reactie, ik heb nog een tweetal vragen...
- hoe kun je een .js een header meegeven? is het mogelijk javascriptbestandjes een .php extentie te geven bijvoorbeeld door met php de header mee te geven, ik heb geen toegang tot de configuratie van de server...
- wordt het bestandje door die include gecached ook als het bestand (index.php) veranderd is en opnieuw opgehaald wordt?
1e vraag. hoe geef je bepaalde extensies een specifieke header mee?
oftewel kijk eens op http://linux.oreillynet.com/pub/a/linux/2002/02/28/cachefriendly.html?page=2Op woensdag 01 mei 2002 03:10 schreef RM-rf het volgende:
voor een *NIX server kun je kijken naar .htaccess om per directory eventueel aan extensies headers mee te geven
.htaccess vereist geen admin-rechten en valt per directory in te stellen, vraag je host of je webserver .htaccess ondersteund
dit zou dan gaan met:
code:
1
2
| ExpiresActive on
ExpiresByType text/javascript "access plus 1 year" |
overigens staat voor meerdere webservers al per default de caching voor .js-files aan, extra definiering van cache-waardes is dus niet nodig, misschien is het beter om dat eerst te testen
2e vraag. blijft een bestand gecached, ook als de originele src veranderd?
ja dus, er is in de cache geen link tussen documenten, met een bepaalde parent, dat zou een cache ook nogal overbodig maken, "plaatjes/afbeelding.gif" is dezelfde, of het nu vanaf "pagina1.html" danwel vanaf "pagina2.php" wordt aangeroepen.Op zondag 28 april 2002 03:21 schreef RM-rf het volgende:
ook al is de file geincluded in een dynamisch gegenereerde pagina die meestal een no-cache-header heeft; de js file zal ge-cached blijven.
een cache-header geldt enkel voor het dan ge-requeste document en niet voor via dat document gelinkede documenten.
Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen
Aha, zo idd,Op woensdag 01 mei 2002 22:41 schreef RM-rf het volgende:
[..]
kennelijk waren mijn antwoorden in chinees, misschien moet ik deze keer in nederlands antwoorden;
1e vraag. hoe geef je bepaalde extensies een specifieke header mee?
[..]
oftewel kijk eens op http://linux.oreillynet.com/pub/a/linux/2002/02/28/cachefriendly.html?page=2
.htaccess vereist geen admin-rechten en valt per directory in te stellen, vraag je host of je webserver .htaccess ondersteund
dit zou dan gaan met:
code:
1 2ExpiresActive on ExpiresByType text/javascript "access plus 1 year"
overigens staat voor meerdere webservers al per default de caching voor .js-files aan, extra definiering van cache-waardes is dus niet nodig, misschien is het beter om dat eerst te testen
2e vraag. blijft een bestand gecached, ook als de originele src veranderd?
[..]
ja dus, er is in de cache geen link tussen documenten, met een bepaalde parent, dat zou een cache ook nogal overbodig maken, "plaatjes/afbeelding.gif" is dezelfde, of het nu vanaf "pagina1.html" danwel vanaf "pagina2.php" wordt aangeroepen.
een cache-header geldt enkel voor het dan ge-requeste document en niet voor via dat document gelinkede documenten.
Pagina: 1