
Optimera rendering av stora dokument i ASP.NET Core
Hastighet är en funktion
När en användare klickar på "View Document" förväntar de sig att den laddas omedelbart. Oavsett om det är ett 3‑sidigt memorandum eller ett 5 000‑sidigt juridiskt memorandum är väntetid inget alternativ. Doconut är konstruerad för hastighet, men för arbetsbelastningar i företagsstorlek är optimering av din implementation nyckeln.
1. Smarta cache-strategier
Att rendera samma sida upprepade gånger är slöseri med CPU‑cykler. Doconut's inbyggda cache‑gränssnitt låter dig lagra renderade sidbilder effektivt.
- Disk Caching: Perfekt för enkla server‑inställningar med snabb NVMe‑lagring. Renderade sidor sparas i
App_Dataoch levereras statiskt vid efterföljande förfrågningar. - Distributed Caching (Redis): Avgörande för lastbalanserade kluster. Om Server A renderar Sida 5, bör Server B kunna leverera den utan att rendera om. Doconut stöder anpassade
ICache‑implementationer för att ansluta direkt till Redis eller Memcached.
2. Lazy Loading & virtualisering
Skicka aldrig hela dokumentet på en gång. Doconut använder en virtualiserad scrollning‑metod.
- Endast de synliga sidorna (plus en liten buffert) begärs från servern.
- När användaren scrollar hämtas nya sidor vid behov.
Detta säkerställer att öppning av en 100 MB PDF tar ungefär samma initiala laddningstid som en 1 MB‑fil.
3. Samtidighet & trådning
I ASP.NET Core är resurshantering avgörande.
- Parallel Processing: Doconut kan utnyttja flerkärniga CPU:er för att förrendera intilliggande sidor medan användaren läser den aktuella.
- Token Management: Stäng dokumenthandtag (
objDoc.Close()) omedelbart när de inte längre behövs (eller användusing‑block) för att hålla minnesavtrycket lågt.
4. Format‑specifika optimeringar
- PDFs: Säkerställ att "Fast Web View" (Linearization) inte är strikt nödvändigt för Doconut (eftersom vi renderar på server), men optimerade interna strukturer hjälper.
- Images: För enorma TIFF/JPEG‑filer kan aktivering av Doconut's tiled rendering förhindra OutOfMemory‑undantag genom att bearbeta bilden i bitar.
Skalning
För applikationer som betjänar tusentals samtidiga användare är Doconut stateless-ready. Genom att abstrahera lagringen (S3/Azure Blob) och cachen (Redis) kan du skala dina beräkningsinstanser horisontellt (Kubernetes/App Service Plan) för att hantera alla trafikspikar.
Leverera blixtsnabb dokumentvisning med en finjusterad Doconut‑implementation.