это реализуется с помощью
AJAX-a
в кратце: вы создаете пустой див, и назначаете ему событие onclick=func(), при клике вызовется func, которая отошлет xmlhttprequest запрос на php/cgi скрипт, который, в свою очередь, вернет соответствующий контент для того или иного div-`а. таким образом - сперва грузятся 40 пустых div-блоков. и при клике - они заполняются.