![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
probuje na onunload zapisac do bazy ze user opuszcza strone. testuje z Chrome.
przed </body> dodalem cos takiego: <script> function ActionUnload() { var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET","storeUnloadAction.php?ref_url="+document.referrer,false); xmlhttp.send(); } window.onbeforeunload = function() { ActionUnload(); ); </script> ale nie dziala. tutaj: xmlhttp.open("GET","storeUnloadAction.php?ref_url="+document.referrer,false); probuje i z false i z true |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
window.onbeforeunload = function()
{ ActionUnload(); ); Jeśli testujesz na Chrome, to używaj konsoli (F12), dużo Ci ułatwi. -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
wlasnie chwile pozniej znalazlem tan blad, .... tylko teraz nie wiem czemu od razu po otwarciu strony ten event sie wykonuje, i od razu zapisuje sie do bazy wyjscie.
consoli F12, niech no ja to ogarne. wyglada ze i window.onbeforeunload i window.unload wywoluja mi sie od razu, albo czegos nie rozumiem. window.unload = function() { ActionUnload(); }; window.onbeforeunload = function() { ActionUnload(); }; |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Nie wykonują się od razu, ale w minimalnym odstępie.
Czemu przypinasz funkcję do dwóch zdarzeń? -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
chodzilo mi o to, ze czy wywolam jedna czy druga to i tak wykonanie nastepuje od razu przy zaladowaniu strony, a ja bym oczekiwal ze to sie wykona dopiero jak wyjde ze strony na jakas inna.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 675 Pomógł: 58 Dołączył: 17.12.2013 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
window.unload = function()
powinno być window.onunload = function() Wprowadź alerty, zerknij czy również są wywoływane przy załadowaniu strony, a nie jej opuszczeniu. -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
uff, dziala:
<script> function ActionUnload() { var xmlhttp=new XMLHttpRequest(); xmlhttp.open("GET","storeUnloadAction.php?ref_url="+document.referrer,false); xmlhttp.send(); } window.onunload = function() { ActionUnload(); }; </script> z tego co czytam onunload wszystkie przegladarki obsluguja czyli powinno byc OK. a skad pobiore na ktora (inna) strone wyszedl? mam jeszcze pytanie zwiazane, choc moze powinienem stworzyc nowy post. w tej linii kodu podaje nazwe skryptu storeUnloadAction.php albo cos takiego ../moje_skrypty/storeUnloadAction.php --> xmlhttp.open("GET","storeUnloadAction.php?ref_url="+document.referrer,false); jesli ktos zobaczy kod strony to wie gdzie znajduje sie dany skrypt php i jak go wywolywac. jesli dobrze rozumiem, to nie moze zobaczyc jego kodu php, ale czy moze wylistowac wszystkie skrytpy php z katalogu "moje_skrypty" i czy moze je wywolac samodzielnie? jak sie nalezy przed tym zabezpieczyc? |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
a skad pobiore na ktora (inna) strone wyszedl? Już kiedyś o to pytałeś. Nie ma takiej możliwości, chyba, że kliknął w link na Twojej stronie. jesli dobrze rozumiem, to nie moze zobaczyc jego kodu php, ale czy moze wylistowac wszystkie skrytpy php z katalogu "moje_skrypty" i czy moze je wywolac samodzielnie? jak sie nalezy przed tym zabezpieczyc? http://stackoverflow.com/a/1607587 -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
to prawda, tylko zobacz, tako sobie mysle, ... jest takie narzedzie feedjit ktore monitoruje ruch, dodaje go na strone jako pare linijek kodu a on potrafi zebrac info skad ktos przyszedl (to juz mam) ale tez na jaka strone wyszedl (wewnetrze, to prawda, ale rozne) wiec myslalem ze gdzies tu cholerstwo musi byc.
przyklad: http://live.feedjit.com/live/harmonicstube.blogspot.com/0/ dziekuje trueblue poniewaz moj monitor chodzi juz ponad tydzien to krotki update z obserwacji: 1. rozwiazanie z window.onunload sprawuje sie niezle. 95% wyjsc zapisuje sie do bazy. 5% nie, i jeszcze nie rozgryzlem w jakich przypadkach nie. Wydaje mi sie iz nie jest to skorelowane z typem przegladarki czy OS. 2. przy opuszczaniu strony nie wiem wciaz skad pobrac link gdzie uzytkownik wyszedl, aczkowlwiek ... problem sie sam rozwiazal, poniwaz gdy wyszedl na jakas strone wewnatrzna ktora tez monitoruje to dla niej juz zapisuje sie skad wszedl (a zatem wiadomo skad wyszedl i gdzie wszedl) ![]() 3. pare razy zdarzylo sie, ze uzytkownik wszedl na 4 rozne pod-strony serwisu w tej samej sekundzie, nie wiem jak to mozliwe, ale tak to sie zarejestrowalo. pozdrawiam |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
ad.1 Nie wszystkie przeglądarki/wersje obsługują to zdarzenie. Spróbuj użyć beforeunload, choć nie wiem czy to jakoś wpłynie na wyniki - najzwyczajniej jeśli ajax zostanie przerwany zanim połączy się z serwerem, to fakt nie będzie odnotowany. Możesz jeszcze spróbować z: http://php.net/manual/en/function.ignore-user-abort.php
ad.2 Próbuję Cię przekonać, że nie jest to możliwe. ad.3 Robot? Co do punktu 1., kiedyś tworzyłem takie fake rozwiązanie. Sprawdzana była pozycja kursora myszy, jeśli był 10 pikseli od górnej krawędzi, to było to traktowane jako fakt wyjścia ze strony. Niezbyt wyrafinowane, ale takowego nie wymagało. -------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 131 Pomógł: 1 Dołączył: 2.11.2014 Ostrzeżenie: (0%) ![]() ![]() |
ad.1 Nie wszystkie przeglądarki/wersje obsługują to zdarzenie. Spróbuj użyć beforeunload, choć nie wiem czy to jakoś wpłynie na wyniki - najzwyczajniej jeśli ajax zostanie przerwany zanim połączy się z serwerem, to fakt nie będzie odnotowany. Możesz jeszcze spróbować z: http://php.net/manual/en/function.ignore-user-abort.php ad.2 Próbuję Cię przekonać, że nie jest to możliwe. ad.3 Robot? Co do punktu 1., kiedyś tworzyłem takie fake rozwiązanie. Sprawdzana była pozycja kursora myszy, jeśli był 10 pikseli od górnej krawędzi, to było to traktowane jako fakt wyjścia ze strony. Niezbyt wyrafinowane, ale takowego nie wymagało. ad1. tak, o tym czytalem. Tylko ze na ta chwile nie znalazlem wzorca : kiedy dziala/niedziala dla jakiej konkretnej przegladarki czy OS. Ale wrzuce tego ajaxa dla obu eventow ZAWSZE ... a niech tam, zobaczymy czy sie poprawi. ad2. no przekonales ... to co jest teraz wystarcza mi ![]() ad3 ... zignoruje na razie. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:11 |