Проблема в том, что вы не можете решить эту проблему, и, вероятно, не в чистом PHP. Выбранный вами подход заставит пользователя загрузить (512x512) = 262 144 байта бесполезных данных, что намного больше, чем у большинства полных страниц. Если у пользователя медленное соединение, он может предположить, что ваш сайт не работает до завершения теста скорости (с 10 КБ / с, до того, как на экране появится что-нибудь интересное, потребуется полминуты!).
Вы можете сделать AJAX-запрос на файл известного размера и времени, сколько занимает . Проблема в том, что страница должна быть уже загружена, чтобы она работала, поэтому она будет работать только для последующих страниц.
Вы можете создать «загрузочную» страницу (как вы видите в GMail при доступе к ней по медленному соединению), которая предварительно загружает данные со ссылкой на версию с низкой пропускной способностью (или, возможно, перенаправляет, если загрузка выполняется слишком долго). длинный).
Или вы можете сохранить время запуска в файле cookie и сделать AJAX-запрос, когда страница будет загружена - это даст вам фактическое время загрузки вашей страницы; если это, скажем, более 10 секунд, вы можете перейти на версию с низкой пропускной способностью.
Однако ни один из них не даст вам скорость при первом доступе; и отправка большой пустой страницы заранее не очень хорошее первое впечатление.