Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQ]/[JS] Zapis tablic do pamięci, Ajax, przed, zamiast po wykonaniu skryptu.
Rewil
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Pobieram sobie baze XML'em, całą, ładuję ją do tablic, no właśnie, nie rozumiem czemu po za funkcją bazaXML mi nie robi ich globalnych. Zmienne przyrównane do tablic są poprawne, to znaczy są pobierane.
  1. $.ajax({
  2. type: "GET",
  3. url: "baza.xml",
  4. dataType: "xml",
  5. success: bazaXML
  6. });
  7.  
  8. pozycja = new Array();
  9. czas = new Array();
  10. naglowek = new Array();
  11. nazwa_link = new Array();
  12. link = new Array();
  13. grafika_link = new Array();
  14.  
  15. function bazaXML(xml) {
  16. id_xml = 1;
  17. $(xml).find("miniaturka").each(function () {
  18. pozycja[id_xml] = $(this).find("pozycja").text();
  19. czas[id_xml] = $(this).find("czas").text();
  20. naglowek[id_xml] = $(this).find("naglowek").text();
  21. nazwa_link[id_xml] = $(this).find("nazwa_link").text();
  22. link[id_xml] = $(this).find("link").text();
  23. grafika_link[id_xml] = $(this).find("grafika_link").text();
  24. //alert(naglowek[id_xml]);
  25. id_xml++;
  26. });
  27.  
  28. //alert(naglowek[1]); tu działa
  29. }
  30.  
  31. alert(naglowek[1]); // tu już nie
  32.  


Wygląda to tak jakby ajax, musiał się wykonać na końcu. Najpierw wyświetla się "tu już nie", dopiero później "tu działa"

@EDIT potwierdzone przypuszczenie, wrzuciłem alerta do interwała i pierwszy jest pusty, następne już nie. Jak zainicjować ajaxa żeby wykonał się jako pierwszy?

Ten post edytował Rewil 24.10.2011, 23:23:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotr.kazmiercza...
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 10
Dołączył: 1.03.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Działać nie będzie bo ajax dłużej się wykonuje niż parsowanie js. Rozumiem, że chodzi o załadowanie danych z tablicy do DOMa. Więc poprostu odpal funkcje która to robi w function bazaXML, wtedy wszystko będzie ok.

  1. function bazaXML(xml) {
  2. id_xml = 1;
  3. $(xml).find("miniaturka").each(function () {
  4. pozycja[id_xml] = $(this).find("pozycja").text();
  5. czas[id_xml] = $(this).find("czas").text();
  6. naglowek[id_xml] = $(this).find("naglowek").text();
  7. nazwa_link[id_xml] = $(this).find("nazwa_link").text();
  8. link[id_xml] = $(this).find("link").text();
  9. grafika_link[id_xml] = $(this).find("grafika_link").text();
  10. //alert(naglowek[id_xml]);
  11. id_xml++;
  12. });
  13.  
  14. zaladuj_obrazki();
  15. }
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 03:53