ďťż
Podstrony
|
telcocafeMam kod:<html> <head> <title>Ajax</title> <script type="text/javascript"> <!-- var xmlHttp = null; function GetDateTime(timeZone) { if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); else if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); if (xmlHttp == null) alert("Błąd inicjalizacji obiektu HTTP Request"); else { xmlHttp.onreadystatechange = SetDateTime; xmlHttp.open("GET", "getdatetime.php?timeZone=" + timeZone, true); xmlHttp.send(null); } } function SetDateTime() { if ((xmlHttp.readyState == 4) || (xmlHttp.status == 200)) document.getElementById("lblDateTime").innerHTML = xmlHttp.responseText; } //--> </script> </head> <body> <form action="?"> <p>Strefa czasowa <select id="cbxCountry" name="Country" onchange="GetDateTime(this.options[this.selectedIndex].value)"> <option value="WA">Polska (Warszawa)</option> <option value="LA">USA (Los Angeles)</option> <option value="MO">Rosja (Moskwa)</option> <option value="SY">Australia (Sydney)</option> </select> </p> <div id="lblDateTime"></div> </form> </body> </html>Po odpaleniu i zmianie opcji cbxCountry wyświetla się błąd. Zaś, gdy usunę linilkę sprawdzającąif ((xmlHttp.readyState == 4) || (xmlHttp.status == 200))to wszystko jest ok...Do czego służą xmlHttp.readyState oraz xmlHttp.status? Nie zawsze mogą one poprawnie działać. Sprawdzałem wszystkie możliwości i tylko usunięcie tej linilki naprawia to, ale kosztem warunku, którego nie jestem w stanie zrozumieć. On wie, do czego służą :P Użytkownik DJ_ProG edytował ten post 24 styczeń 2007, 09:16 A więc to jest jedynie wewnętrzny błąd Firefoxa? Ale msie też ma problem przy funkcji SetDateTime... //edit Przykład //edit Już wiem do czego służy xmlHttp.status - sprawdza, czy nie wystąpił błąd na przykład 404 (Nie odnaleziono) lub 500 (Wewnętrzny błąd serwera) //edit Natomiast xmlHttp.readyState sprawdza, czy strona została załadowana: * 0 - niezainicjowany * 1 - ładowanie * 2 - załadowany * 3 - interakcja z dokumentem * 4 - zakończono Internet jednak się do czegoś przydaje :P //edit Przed chwilą zauważyłem, że w przykładzie Firefox wyświetla tak jak należy, jedynie msie odnajduje jakiś błąd... Błąd był zaś wykonywany na moim Krasnalu, na innym Firefoxie (chyba, że ten, którego używam w tej chwili sfingował)... //edit Błąd popełniła Redakcja... Kod poprawny warunku powinien być:if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200))Błąd był w przypadku xmlHttp.status, który w chwili ładowania strony nie miał dostępnego xmlHttp.status... Więc jeśli strona nie zostanie załadowana to nie może być mowy o xmlHttp.status Użytkownik andrzej_aa edytował ten post 25 styczeń 2007, 16:15 |
|||
Sitedesign by AltusUmbrae. |