Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JQuery] Mega Problem z $.get - Ponowne wczytywanie XHR i JS
Forum PHP.pl > Forum > XML, AJAX
Falcon_vanguard
Witam wszystkich.

Jako że nie staram się zawsze poświęcić nawet parę dni na rozwiązaniem problemu - tak tu jak i w Googlach nic ciekawego nie znalazłem.
  1.  
  2. $('.menu div a, .menu2 span a').click(function(){
  3.  
  4. var a=this;
  5.  
  6. $('#tresc').fadeOut(200,function(){
  7.  
  8. $.get('Program-'+$(a).attr('href').substr(1),
  9.  
  10. function(data){$('#tresc').html(data);}).complete(function(){$('#tresc').fadeIn(200);$('.menu2').fadeIn(200);});});});
  11.  
  12.  


LEGENDA: Kod ten ma za zadanie podczas kliknięcia w odpowiednią klasę pobrać wartość z HREF'a , przekazać go jako adres do którego będzie szło zapytanie GET a następnie wynik ma wylądować w id='TRESC', gdzie klasa 'MENU' nie znajduje się w obszarze TRESC i nie odświeża się. Jest wczytywana tylko podczas odświeżenia strony, a id TRESC jest poniżej. Dodatkowo dodam że cały skrypt inkludowany jest po wydrukowaniu HTML'a - Na samym końcu (Inaczej nie działa smile.gif ).

Dane które lądują w TRESC to ta sama strona która jest wczytywana na początku (czyli zawierająca inkludowane JS i JQ) tyle że z innymi parametrami.

Nie wiem czy się jasno wyraziłem tongue.gif ale niestety na pochwalenie się inną częścią kodu nie dostałem zezwolenia sad.gif

PROBLEM:


1. JavaScript'y wczytują się za każdym razem kiedy wykonuje zapytanie - Wolał bym by wczytały się tylko po odświeżeniu strony, a przy wykonaniu $.GET - Omijał tego typu wczytywania.
2. Za każdym razem gdy po raz kolejny kliknę w link który uruchamia $.get - Wykonuje on STARE zapytanie (te pierwsze) oraz te które mu nadałem. czyli jeżeli kliknę w ten link 4x - XHR wykona się 4x!

Błagam o pomoc!

Pozdrawiam.

EDIT:

Przepraszam zapomniałem dodać: W HREF wartość jest podawana na wzór: <a href="#Wartosc" >Kliknij</a>, Po czym ląduje BEZ '#' w URL z przedrostkiem 'Program-' a całość wygląda w ten czas tak: http://mojastrona.pl/Program-Wartosc (Gdzie przepisywanie na przyjazne linki jest w .httacces)

EDIT2: Stworzyłem funkcję od 0 w JS dla przesyłania danych GET i zauważyłem że problem pojawia się przy funkcji JQ $('#jakiś id').html(html); ... Dane wczytywane tą metodą działają kompatybilnej ale następuje mnożenie zapytań... Czy ktoś ma jakieś sugestie, czy może przypadkowo taki szarak jak ja znalazł jeden z bugów w JQ? wink.gif
mortus
Cytat
Dane które lądują w TRESC to ta sama strona która jest wczytywana na początku (czyli zawierająca inkludowane JS i JQ) tyle że z innymi parametrami.

Bo pierwszy parametr metody get powinien być adresem URL, a u Ciebie jest czymś na wzór "Program- http://.......", a to nie URL. Ładuje ci do treści zawsze tę samą stronę, ponieważ nie może wykonać żądania, zatem zwraca stronę, z której żądanie poszło.
Falcon_vanguard
Cytat(mortus @ 3.03.2011, 11:09:08 ) *
Bo pierwszy parametr metody get powinien być adresem URL, a u Ciebie jest czymś na wzór "Program- http://.......", a to nie URL. Ładuje ci do treści zawsze tę samą stronę, ponieważ nie może wykonać żądania, zatem zwraca stronę, z której żądanie poszło.


Przepraszam zapomniałem dodać: W HREF wartość jest podawana na wzór: <a href="#Wartosc" >Kliknij</a>, Po czym ląduje BEZ '#' w URL z przedrostkiem 'Program-' a całość wygląda w ten czas tak: http://mojastrona.pl/Program-Wartosc (Gdzie przepisywanie na przyjazne linki jest w .httacces)
mortus
Cytat(Falcon_vanguard @ 3.03.2011, 11:27:41 ) *
Przepraszam zapomniałem dodać: W HREF wartość jest podawana na wzór: <a href="#Wartosc" >Kliknij</a>, Po czym ląduje BEZ '#' w URL z przedrostkiem 'Program-' a całość wygląda w ten czas tak: http://mojastrona.pl/Program-Wartosc (Gdzie przepisywanie na przyjazne linki jest w .httacces)

Może i tak, ale w metodzie get masz 'Program-'+$(a).attr('href').substr(1), czyli do Twojego odnośnika dodawany jest jeszcze przedrostek Program- i w efekcie niby URL to Program-http://mojastrona.pl/Program-Wartosc.
Falcon_vanguard
Cytat(mortus @ 3.03.2011, 11:38:14 ) *
Może i tak, ale w metodzie get masz 'Program-'+$(a).attr('href').substr(1), czyli do Twojego odnośnika dodawany jest jeszcze przedrostek Program- i w efekcie niby URL to Program-http://mojastrona.pl/Program-Wartosc.


Dodałem ten przedrostek bezpośrednio w atr. HREF ale to nie zmienia faktu. sprawdzałem na 100 różnych sposobów budowę linka który ostatecznie trafia - a trafia odpowiedni.
w klasie MENU mam: <a href="#Program-wartosc" />Kliknij</a> przekazuje to bez pierwszego znaku czyli '#' ... Spróbowałem również bezpośrednio wpisać na sztywno:
  1. $.get('http://panel-firmowy.pl/'+$(a).attr('href').substr(1), (...)
I nadal JS jest wczytywany jak i poprzednie zapytania są również ponownie wczytywane. Wszystko gra - Zawartość jest wczytywana - Ale po 5 kliknięciu zanim skrypt załaduje wszystkie XHR które wykonał do tej pory + Wszystkie (Powtórzone) Inkludowania JS = Dostaję po bardzo długim czasie to co che.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.