Jeśli zmienię skrót: window.location.hash = "main/0/sub/1/na/false";
. Adres w przeglądarce zmienia się na http://mysite.com/#main/0/sub/1/na/false
. Funkcja onhashchange na stronie uruchamia się i wszystko działa tak, jak powinno.Korzystanie z ukośnika w window.location.hash
Jednak w Firebug widzę, że wysyłam również prośbę o: http://mysite.com/main/0/sub/1/na/false
... URL bez skrótu, co powoduje, że 404 w konsoli jest ciche.
Po debugowaniu stwierdzam, że zdarza się to w punkcie window.location.hash
.
Ale jeśli zmienię skrót: window.location.hash = "main=0&sub=1&na=false";
, żadne dodatkowe żądanie nie zostanie wysłane.
Dlaczego dodatkowe żądanie jest wysyłane w pierwszym przykładzie?
UPDATE: zauważyłem, że wysyła żądanie po window.location.hash
i przed (w czasie?) $(window).bind('hashchange')
. Przykład, jeśli mam ...
window.location.hash = 'main/0/sub/1/na/false'; // Breakpoint 1 in Firebug
$(window).bind('hashchange', function(e) {
e.preventDefault(); // Breakpoint 2 in Firebug
e.stopPropagation();
});
Po zatrzymaniu w punkcie przerwania 1, żadne żądanie nie zostanie wysłane. Kiedy zatrzymuje się w punkcie przerwania 2, żądanie jest już wysłane.
Widzę na serwerze Apache Tomcat, że żądanie jest wysyłane.
dodam, że mam jQuery i jQuery komórkowy podłączony
UPDATE 2:. Usuwanie jQuery Mobile, rozwiązuje ten problem. Jednak muszę go:/
UPDATE 3
Jeśli ktoś jest zainteresowany: z jQuery komórkowy: http://jsfiddle.net/pioSko/hz5PU/3/
Bez jQuery Mobile umożliwia: http://jsfiddle.net/pioSko/hz5PU/4/
Otwórz Firebug lub innej aplikacji diagnostycznych i przetestuj łącza.
Czy żądania rzeczywiście trafiły na serwer? Która wersja Firebug, Firefox? Nie widzę tego na naprawdę starym tutaj, ani na świeżym Chrome, więc myślę, że to może być błąd. –
Nie można odtworzyć z FF 12.0 i 13.0.1. Wypróbowałem 'window.location.hash =" main/0/sub/1/na/false ";' w konsoli Firebug na losowej stronie, nie zaobserwowano żądań sieciowych. – lanzz
Stworzyłem stronę dummy i nie mogę odtworzyć tego błędu. Dlatego musi być głębiej w kodzie. – pioSko