ďťż
Podstrony
|
telcocafeZ góry przepraszam że zamieszczam dość duże fragmenty kodu ale chce żeby wszystko było jasne.<!--HEADER--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2"> <META HTTP-EQUIV="Creation-date" CONTENT="2002.03.16"> <META HTTP-EQUIV="Reply-to" CONTENT="sebastianwojcik@gmail.com"> <META NAME="Author" CONTENT="oggy_lwiatko"> <LINK REL="STYLESHEET" HREF="style.css" TYPE="text/css"> <TITLE></TITLE> <!--AJAX-----------------------------------------------------------------------> <script type="text/javascript"> var ObiektXMLHttp = false; if (window.XMLHttpRequest) ObiektXMLHttp = new XMLHttpRequest(); else if (window.ActiveXObject) ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); function getData(zrodlo, cel) { if(ObiektXMLHttp) { var cel = document.getElementById(cel); ObiektXMLHttp.open("GET", zrodlo); ObiektXMLHttp.onreadystatechange = function() { if (ObiektXMLHttp.readyState == (1 || 0)) { document.getElementById('loading').innerHTML = "Ładowanie..."; } if (ObiektXMLHttp.readyState == 4) { document.getElementById('loading').innerHTML = " "; cel.innerHTML = ObiektXMLHttp.responseText; } if (ObiektXMLHttp.readyState != (1 || 0 || 4)) { document.getElementById('loading').innerHTML = " "; } } ObiektXMLHttp.send(null); } } </SCRIPT> <!--/AJAX----------------------------------------------------------------------> </HEAD> <BODY> <!--/HEADER--> <TABLE class = "s_table" cellpadding = "0" cellspacing = "0"> <TR> <TD> <TABLE class = "s_table" cellpadding = "0" cellspacing = "0"> <TR> <TD id = "td_one"><script type="text/javascript">getData('engine.php?mode=mini&album=album&foto=foto& start=start', 'mini');</SCRIPT><DIV id = "mini"> </DIV> </TD> </TR> </TABLE> </TD> <TD> <TABLE class = "s_table" cellpadding = "0" cellspacing = "0"> <TR> <TD><DIV id = "loading"> </DIV> </TD> </TR> <TR> <TR> <TD><script type="text/javascript">getData('engine.php?mode=title&album=album&foto=foto& start=start', 'title');</SCRIPT><DIV id = "title"> </DIV> </TD> </TR> <TR> <TD><script type="text/javascript">getData('engine.php?mode=image&album=album&foto=foto& start=start', 'image');</SCRIPT><DIV id = "image"> </DIV> </TD> </TR> <TR> <TD><script type="text/javascript">getData('engine.php?mode=descs&album=album&foto=foto& start=start', 'descr');</SCRIPT><DIV id = "descr"> </DIV> </TD> </TR> </TABLE> </TD> </TR> </TABLE> <!--FOOTER--> </BODY> </HTML> <!--/FOOTER--> <!--ISO--> I jeśli taką strone otwieram w przeglądarce to wywala mi takie błędy: Błąd: document.getElementById("loading") has no properties Plik źródłowy: http://localhost/przegladarka2/ Wiersz: 31 Błąd: cel has no properties Plik źródłowy: http://localhost/przegladarka2/ Wiersz: 36 Błąd: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: http://localhost/przegladarka2/ :: getData :: line 43" data: no] Z ajaxem dopiero zaczynam więc nie bardzo wiem czemu to jest źle :/ Użytkownik OGGY_Lwiatko_89 edytował ten post 04 lipiec 2007, 22:59 Po prostu należałoby umieścić kod za znacznikiem <div id="mini"></div> ponieważ skrypt jest wykonywany,gdy element jeszcze nie został załadowany. Dałbym kod,ale to jest Opera Mini i nie mam takiej możliwości :P zadziałało ... teraz rozumiem czemu div'a nie widziało :P ... ale ostatni błąd nadal się pojawia : Błąd: uncaught exception: [Exception... "Component returned failure code: 0xc1f30001 (NS_ERROR_NOT_INITIALIZED) [nsIXMLHttpRequest.send]" nsresult: "0xc1f30001 (NS_ERROR_NOT_INITIALIZED)" location: "JS frame :: http://localhost/przegladarka2/ :: getData :: line 43" data: no] jak przedtem ... dwa razy. Dlaczego ? Wpisanie w Google NS_ERROR_NOT_INITIALIZED daje odpowiedź oraz sztuczkę jak to rozwiązać. Ogólnie, to ten kod jakiś stary jest, w html 3... Sugeruję zajrzeć do nowszych tutoriali na temat ajaxa np. na W3C). Problem wynika stąd, że wywołujesz kilkakrotnie metodę asynchronicznie dla jednego obiektu, zanim wykona poprzednie zadanie. Jak dla mnie to powinno być jedno zapytanie, a odpowiedzią XML ze wszystkimi polami. Jak tak się nie da, to zapytanie może być synchroniczne, albo trzeba spróbować utworzyć tyle obiektów, co zapytań. |
|||
Sitedesign by AltusUmbrae. |