My Developer toolbar in Safari indicates the page is done in about 1.57s. Maybe I can tell cURL statically to wait for 2 seconds too?
I wonder what the possibilities are 🙂
You’ll have to use a browser on the server side, tell it to load the page, wait for X seconds and then ask it to give you the HTML.
Look at: http://phantomjs.org/ (you’ll need to use node.js, I’m not aware of any PHP solutions).
Not knowing a lot about the page you are retrieving or the calculations you want to include, but it could be an option to cURL straight to the URL serving those ajax requests. Use something like Firebug to inspect the Ajax calls being made on your target page and you can figure out the URL and any parameters passed. If you do need the full web page, maybe you can cURL both the web page and the Ajax URL and combine the two in your PHP code, but then it starts to get messy.
There is one quite tricky way to achieve it using php. If you’ really like it to work for php you could potentially use Codeception setup in junction with Selenium and use Chrome browser webdriver in headless mode.
Here are some general steps to have it working.
You make sure you have codeception in your PHP project
Download chrome webdriver:
Configure it accordingly looking into documentation of codeception framework.
Write codeception test where you can use expression like
$I->wait(5)for waiting 5 seconds or
$I->waitForJs('js expression here')for waiting for js script to complete on the page.
Run written in previous step test using command
php vendor/bin/codecept path/to/test