In the world of automated web captures, there has always been a frustrating trade-off: Accuracy vs. Speed.
If you are capturing a modern, JavaScript-heavy webpage, you often need to wait. Whether it’s an AJAX-loaded data dashboard, a fading-in hero element, or a complex chart, sometimes the "document ready" state just isn't enough. You need a delay.
But here is the problem: if you add a 5-second delay to every capture in a 1,000-image job, you’ve just added 83 minutes of pure waiting to your workflow.
At GrabzIt, we thought: "Why should a second of 'browser time' take a second of 'real time'?"
To solve this, we implemented a feature called Accelerated Delay. It allows our capture engine to respect your requested delay—giving scripts and animations the time they need to execute—without making you wait for the clock to tick in the real world.
When you specify a delay in our API, our browser environment utilizes Virtual Time. Instead of a standard "sleep" command that halts the entire process, we accelerate the browser's internal clock.
Imagine a video player set to 2x or 5x speed. The content still plays from start to finish, and every frame is rendered, but it completes in half the time.
setTimeout and setInterval functions still fire in the correct order.Most capture services use a "hard wait." If you ask for 5 seconds, they bill you for 5 seconds of server resources, and you sit through 5 seconds of latency.
By using Virtual Time, GrabzIt offers:
Technical Note: The Exceptions
While Accelerated Delay is a powerful tool for images and PDFs, it isn't universal. For MP4 (Video) and DOCX captures, we utilize Real Time.
Video captures require a consistent 1:1 frame rate to ensure the output plays back correctly, and DOCX conversions require a static snapshot of the live DOM state to ensure layout integrity.
The best part? You don't have to do anything. If you are using the delay or waitfor parameters in our APIs, Accelerated Delay is automatically working behind the scenes for supported formats.
You get the accuracy you asked for, delivered faster than you expected.
Want to see it in action? Try adding a 30000ms delay to your next URL-to-Image capture and notice how the "Total Processing Time" in your logs is significantly lower than the delay itself.
Check out the updated delay documentation for more information.