Pierwszy pomysl jaki przyszedl mi do glowy to dwa uruchamiane jednym kliknieciem Ajaxy.
Generujesz na stronie glownej unikalny id ktory bedzie potrzebny do jakiejs komunikacji miedzy dwoma procesami
Pierwszy proces uruchamia w tle ladowanie listy towarow ( zeby przegladarka miala jakis kontakt ze swiatem

)
-najpierw zczytujesz counter twojej listy towarow
-uruchmiasz mechanizm kontrolujacy postep ladowania listy (np. memcache) w ktorym zapamietujesz unikalny id i counter
-podczas ladowania listy po wykonaniu kazdej petli inkrementujesz swoja informacje o postepie
Drugi proces (a wlasciwie procesy) lacza sie z memcache odczytujac staly counter i aktualna informacje o postepie (no wlasnie wtedy moze przydac sie unikalny id do szukania interesujacej cie pary counter - postep)
Te procesy uruchamiasz jakims setInterval
Opakowujesz jakos request z serwera ( np w XML czy JSON ) i liczysz sobie proporcje
onSuccess laczysz ze skrypcikiem malujacym twoj progres
Pierwszy proces konczysz po zaladowaniu calej listy jakims response
Drugiego ajaxa konczysz jezeli stosunek countera i postepu = 1
Czyscisz memcache
Idziesz na piwo