Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [JavaScript][AJAX] Load i porównanie
in5ane
post
Post #1





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Witam. Mam coś takiego:
[JAVASCRIPT] pobierz, plaintext
  1. setInterval("$('#sb').load('index.php #sb')", 5000);
[JAVASCRIPT] pobierz, plaintext

I moje pytanie brzmi, jak mam stworzyć IF'a jakiegoś, żeby sprawdzało, czy po załadowaniu na nowo tego DIV'a (#sb) (co 5 sekund ładuje), coś się zmieniło. Jeżeli się coś zmieniło, to coś skrypt ma wykonać (to już sobie dopiszę), a jeżeli nie, to nic.
Proszę o pomoc.

Ten post edytował in5ane 27.02.2011, 21:49:11
Go to the top of the page
+Quote Post
Rid
post
Post #2





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Można by tutaj spróbować porównać rozmiar index.php,najprostszy sposób,nie jest to jednak w 100% skuteczne.

Ten post edytował Rid 27.02.2011, 22:06:21
Go to the top of the page
+Quote Post
in5ane
post
Post #3





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Tzn. np. jak?
Go to the top of the page
+Quote Post
Rid
post
Post #4





Grupa: Zarejestrowani
Postów: 715
Pomógł: 47
Dołączył: 5.12.2010

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


Przy wejściu na stronę zapisuje Pan w bazie danych rozmiar pliku filesize($index.php) do bazy danych
i sprawdza pan po interwale rozmiar z tym co jest zapisany w bazie,jednakże jak napisałem nie jest to skuteczne w odniesieniu do diva.Przykład:
<div>ala</div>
<div>ale</div>
dwa różne słowa ,ale rozmiar pliku pozostanie niezmieniony.Jeśli ktoś wpisze
<div>hale</div> rozmiar pliku już się zmieni.
Może ktoś ,zna lepsze rozwiązanie?(IMG:style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post
in5ane
post
Post #5





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


A nie ma innej mozliwosci? Bo chodzi o to, ze mam shoutbox i odwieza mi Diva, co te 5 sekund i jak jest nowa wiadomosc to ja pokazuje. A chcialbym zrobic, ze jak jest nowa wiadomosc, to bedzie dzwiek. Prosze o pomoc.

Chyba, że macie inny pomysł na odświeżanie. Może znacie jakiś sposób, że odświeży mi tego DIV'a tylko wtedy, gdy jest nowa wiadomość.
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


To nie żaden .load a getJSON i potem porównywanie tablic - tej z javascript, którą pobrałeś chwilę wcześniej z tą z php.

W ogóle nie wystarczy Ci jeden temat? Musisz dwa zakładać?
http://forum.php.pl/index.php?showtopic=171226

Ten post edytował fifi209 28.02.2011, 08:11:11
Go to the top of the page
+Quote Post
in5ane
post
Post #7





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Ja nie założyłem tamtego tematu, tylko nospor przeniósł posty z innego (gdzie zadałem jedno pytanie) i utworzył nowy temat.

@nospor: zdejmij mi ten procent, nie zakładałem specjalnie nowego tematu.


@topic: jak to nie load? ja właśnie poprzez load, który wykonuje się co 5 sekund zmieniam zawartość DIV.

W tym DIVie mam zwykłe zapytanie do bazy, pętlę while, która w tabelce wyświetla wiadomości. Więc w jaki sposób mogę porównywać?

Ten post edytował in5ane 28.02.2011, 09:22:31
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ja nie założyłem tamtego tematu, tylko nospor przeniósł posty z innego (gdzie zadałem jedno pytanie) i utworzył nowy temat.
Zapytałeś o to samo w innym temacie. To też jest crossposting. Czy bym wydzielił Twoj post czy nie to nadal twój problem by był rozważany w dwóch wątkach - to jest crossposting i to jest na forum zabronione
Go to the top of the page
+Quote Post
in5ane
post
Post #9





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Wracając do tematu, mam dokładnie tak:

w sekcji head:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">setInterval("$('#sb').load('index.php #sb')", 5000);</javascript>
[JAVASCRIPT] pobierz, plaintext


w sekcji body:
  1. <div id="sb">
  2. <?php
  3. $query = "SELECT * FROM shoutbox ORDER BY time DESC";
  4. while($row = mysql_fetch_array($query)) {
  5. $row['msg'].'<br />';
  6. }
  7. ?>
  8. </div>


I teraz dokładnie widać, jak to działa u mnie. Czyli po prostu Ajax (jQuery w moim przypadku) odświeża po prostu tego DIV'a. I teraz moje pytanie właśnie. Jak mogę zrobić, żeby np. pod tym load był jakiś if(stara tresc != nowa tresc) to daj dźwięk.

Proszę o pomoc.

Ten post edytował in5ane 28.02.2011, 09:40:50
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Jak mogę zrobić, żeby np. pod tym load był jakiś if(stara tresc != nowa tresc) to daj dźwięk.

LOAD ma callback do którego jest przekazywana Twoja treść. zapamiętuj więc tę treść w zmiennej js i sobie sprawdzaj czy tresc aktualnie dostana jest różna od tresci zapamietaj w zmiennej js. Jak tak to wal dźwięk
Go to the top of the page
+Quote Post
everth
post
Post #11





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


W jQuery w ajax jest też opcja ifModified - jeśli masz ustalone prawidłowe nagłówki odpowiedzi to żądanie nie powinno nic zwracać jeśli odpowiedź nie zmieniła się od ostatniego razu.
Go to the top of the page
+Quote Post
in5ane
post
Post #12





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Które będzie prostsze? To callback czy ifModified? Mógłbym poprosić o jakieś przykłady? Bo co do callbacku jest tyle, co nic w dokumentacji ;/
Go to the top of the page
+Quote Post
everth
post
Post #13





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Szczerze mówiąc to nie wiem jak odpowiedzieć. Dla mnie sensowniejsze wydaje się bazowanie na nagłówkach (ETag, If-Modified-Since) bo ogranicza ilość przesyłanych danych (zwłaszcza tu gdy połączenia są nawiązywane regularnie), ale jak pytasz o to czym są callbacki to może zostań przy rozwiązaniu nospora.

Callback jest funkcją którą przekazujesz metodzie jQuery, uruchamia się ona po wykonaniu właściwego kodu metody lub w reakcji na określone zdarzenie (zazwyczaj, może są jeszcze inne zastosowania). Przykładów masz od groma - poszukaj.

Ten post edytował everth 28.02.2011, 17:13:25
Go to the top of the page
+Quote Post
in5ane
post
Post #14





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Cześć, mam problem, otóż w PHP (już w sekcji body) chce wywołać pewną rzecz i nie działa mi. Np. to działa: <input type="button" onclick="klik()" value="ok" />, jak kliknę, to śmiga, ale jak zrobiłem tak: <script type="text/javascript">klik();</script> to nie działa. Może ktoś pomóc?
Go to the top of the page
+Quote Post
kokers
post
Post #15





Grupa: Zarejestrowani
Postów: 154
Pomógł: 33
Dołączył: 18.10.2010
Skąd: Katowice

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


heh...
a co niby wywołuje tego klika w <script .... ></script> ?

bo to, że kliknięcie w button powoduje wywołanie klika to wiadomo. a to drugie? kto/co jest tym wywoływaczem?
Go to the top of the page
+Quote Post
in5ane
post
Post #16





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


To klik(); jest w DIVie, który jest odświeżany, co pewien czas i gdy zostanie odświeżone, to powinno zostać wywołane, więc dlaczego się nie wywołuje?
Go to the top of the page
+Quote Post
Fifi209
post
Post #17





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Odświeżany jest AJAX'em? Jeżeli tak to nic dziwnego.
Go to the top of the page
+Quote Post
in5ane
post
Post #18





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Dlaczego dziwne? Poproszę o pomoc.
Go to the top of the page
+Quote Post
kokers
post
Post #19





Grupa: Zarejestrowani
Postów: 154
Pomógł: 33
Dołączył: 18.10.2010
Skąd: Katowice

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


poczytaj o wykonywaniu funkcji onSuccess czy temu tam podobne.

w ostateczności o setinterval
Go to the top of the page
+Quote Post
in5ane
post
Post #20





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Kombinuję, ale nie wychodzi mi, nie wiem dokładnie, gdzie, co mam umieścić.

Mój kod:
[JAVASCRIPT] pobierz, plaintext
  1. <script type="text/javascript">
  2. setInterval("$('#sb_sb').load('index.php #sb_sb')", 1000);
  3. function klik() {
  4. $('#sb').load('index.php #sb');
  5. }
  6. </script>
[JAVASCRIPT] pobierz, plaintext

i sekcji body:
  1. echo '<div id="sb_sb">';
  2. $query_m = mysql_query("SELECT (data) FROM shoutbox ORDER BY data DESC LIMIT 1");
  3. $row_m = mysql_fetch_array($query_m);
  4. if($_COOKIE['lastmsg'] != $row_m['data']) {
  5. echo '<script type="text/javascript">klik();</script>';
  6. }
  7. echo '</div>';


Proszę o jakąś pomoc. Męczę się już z tym drugi dzień.

A może macie inny pomysł, żeby się wykonał kod z funkcji klik? Chodzi o to, że tylko wtedy gdy to ciasteczko będzie nierówne danej z MySQL.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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.01.2026 - 14:41