Caching is de werkwoordsvorm van ‘cache’, wat staat voor opslag in het tijdelijk geheugen. Een deel van het geheugen wordt gebruikt om tijdelijk data op te slaan met als doel verwerkingen sneller uit te voeren. Een specifieke vorm hiervan is de webcache wat het mogelijk maakt om webpagina’s sneller te laden. Wat is caching en zijn er ook nadelen aan vooraf data laden?
Als er een afbeelding staat op de hoofdpagina van een webpagina die op een andere pagina opnieuw afgebeeld wordt, dan is het niet nodig om weer dit bestand van de server te downloaden. Met caching is het mogelijk deze data tijdelijk te bewaren en weer opnieuw te gebruiken als dit nodig mocht zijn. Deze methode wordt niet alleen toegepast op webbrowsers maar kan voordeel bieden voor een groot aantal toepassingen.
Het voornaamste voordeel van caching is de snelheid van de toepassing die gebruikt wordt. Het RAM geheugen is direct toegankelijk en werkt sneller dan data downloaden of van een harde schijf laden. Als de cache op een HDD staat in plaats van statisch geheugen dan kunnen de prestaties van een systeem aanzienlijk afnemen. Computers met vast geheugen en een tekort aan RAM geheugen kunnen daardoor langzaam lijken te functioneren omdat de leessnelheid van een harddisk aanzienlijk lager ligt. Daarnaast kan er onderscheid gemaakt worden tussen langzamer DRAM en het snellere SRAM.
Men spreekt van browsercaching als het gaat op tijdelijke bestanden die opgeslagen worden in de internetbrowser. Vanwege het dynamische karakter van het internet bestaat er het risico dat de data in de cache verouderd is.
Een vorm van caching is prefetching. In plaats van data te bewaren die opnieuw wordt zal data worden geladen als verwacht wordt dat het nodig is. Hiervoor kan een voorspellend algoritme worden gebruikt. Als iemand bijvoorbeeld een webpagina bezoekt dan is het waarschijnlijk dat een achterliggende pagina ook geladen moet worden. Door deze pagina alvast te cachen kan de volgende pagina direct worden weergegeven.
Een nadeel van prefetching is enerzijds de grotere hoeveelheid data die een gebruiker moet downloaden en anderzijds de druk op de server die deze data moet verzenden terwijl deze mogelijk niet wordt gebruikt.