Ajax i znikający kod js

Witam,

Natknąłem się właśnie na pewien poważny problem. Ładuje sobie kawałek strony za pomocą ajaksa, z tymże jest tam ładowane wszystko, za wyjątkiem kodu JS który odpowiada za obsługę tego co zostało załadowane. Kod ten jest po prostu wrzucony przez . Wszystkie elementy HTMLowe są załadowane, widać to w Firebugu, ale po tym kodzie ani śladu. Jak sprawić, aby rówież on został wstawiony na stronę?

pozdrawiam,

Piotr

Piotrek
pokaz kod odpowiadajacy za ladowanie strony

Okej, jade na jquery ten dokument ładowany ajaksem jest obsługiwany tak

$.ajax({type: 'GET', url: '#{url}', dataType: 'script', async: 'true'})

Trochę pomyślałem i widzę już w czym jest problem. Odpowiedź od serwera traktowana jest jako skypt js. Tak więc wszystko co jest w js jest z miejsca wykonywane, nawet to co jest w .rhtml, a nie w .rjs, no bo skąd przeglądarka ma wiedzieć co jest skąd.

Teraz zagwostka przede mną taka, jak mam ładować skypty obsługujące rzeczy ładowane na strone przez ajax? Zrobić ogólny plik .js ze wszystkim? To się wydaje bardzo proste rozwiązanie, ale widze dwa ale:

  • dużo plik i dużo ładowania niepotrzebnych rzeczy
  • muszę zapewnić jednoznaczność identyfikatorów nie tylko na danej podstronie, ale i w całym serwisie.

Jak wy rozwiązujecie tego typu zagadnienia?

ustawienie dataType na “text” lub “html” powinno pomóc

Wprowadzenie do RJS.

Jeśli korzystasz z jQuery to plugin jRails ładnie się z tym integruje (tzn. zastępuje wszystkie helpery js Prototype na wersje jQuery)