to co kompresujesz to nie powinieneś za każdym razem jeśli treść się nie zmienia gdyż sszkoda mocy obliczeniowej... pozatym jeśli przeglądarka odebrała dane pliki js, css i img wcześniej to przy ponownym zapytaniu jesli nie zmienione wysyłaj odpowiedni nagłówek "HTTP/1.0 304 Not Modified" wtedy pliki nie będą pobrane po raz drugi... aby zmniejszyć ilość zapytań http przy następnym wywołaniu strony to ustawiaj w nagłówkach czas wygaśnięcia dla plików przez jaki na pewno danych plików nie zmodyfikujesz (co chwila o danym adresie js, css i img raczej nie będziesz zmieniał na serwerze ;p)....
co do tej kompresji co wspomniałem wyżej na początku zapisz gdzieś wersję skompresowaną a potem ją wysyłaj...
co do skrytów js to większość osób inicjując operacje na dokumencie kożysta z onload - to zdarzenie jest niby po wczytaniu całego dokumentu ale jest też po wczytaniu wszystkich obrazków na które musisz czekać aż się ściągną z neta - skożystaj w mozilli/operze z DOMContentLoaded... ogólnie poczytaj w google jak wpiszesz domready to sporo możesz się dowiedzieć o co w tej tematyce chodzi - na ie jest inny sposób - są gotowe rozwiązania w necie które dla wszystkich przeglądarek działają wcześniej niż onload a po załadowaniu DOM - jest jeszcze jeden sposób - wywołanie funkcji startującej możesz umieścić na końcu przed lub za </body> i będziesz miał wczytane do DOM wszystkie elementy powyżej a więc wszytkie elementy...
samo js zawsze się wykonuje od zera (mogłeś zaoszczędzić czas na jego wczytywanie tak jak wspomniałem wyżej)... zerknij na te algorytmy operacji js które się wykonują za jakiś czas świeżym umysłem i raczej często da się większość rzeczy zoptymalizować - może nie potrzebnie przy danym zdarzeniu przeszukujesz cały dom?? - może wszystkie potrzebne elementy było wczytać do tablicy a potem tylko do tej tablicy się odwoływać??...
co do tej strony nie musisz się tak samo stosować - ja mam to inaczej rozwiązane a przyokazji dodane zabezpieczenie przed hotlinkowaniem ale jakby idea jest taka sama:
Optymalizacja witryn w PHPa na tej stronie jest wspomniane jak zrobić by strony szybko się ładowały także przy pierwszym wczytywaniu (nie musisz wszystko aż tak optymalizować):
Best Practices for Speeding Up Your Web Siteco do tych obrazków jeszcze na które się czeka podczas wczytywania to wysyłąj je z parametrem wysokości i szerokości żeby strona "nie skakała" - pewnie o czymś zapomniałem ale to już masz nakierowanie...
ps.
jak juz kolega wyżej nadmienił a dodam - nie wszystkie pliki warto kompresować gzip gdyż już wcześniej one są spakowane - oprócz flash nie warto też kompresować obrazków - no jedynie .bmp o ile jest duży to na nim na transferze zaoszczędzisz ale i chyba tu ni ewarto ;p - każdy inny kompresja gdzip w zasadzie nic nie da...