Ajax durchgehendes Refresh funktioniert nicht
lima-city → Forum → Die eigene Homepage → HTML, CSS & Javascript
abziehen
aktualisieren
andauernd aktualisieren
anfrage
code
dank
ersichtlich versuch
hilfe
kleinen server
laufen
list
millisekunde
minute
nachdenken
sekunde
set
ticket
update
url
wetten
-
Hi,
ich habe ein Script geschrieben das Namen aktualisieren soll, dieses möchte ich über Ajax andauernd aktualisieren.
Doch AJAX aktualisiert die Seite nicht.
PHP Script Code: (Name = play.php) $create_array_ticket = mysql_query("SELECT t_number FROM tickets"); list($ticket) = mysql_fetch_row($create_array_ticket); $ticket++; $update_ticket = mysql_query("UPDATE tickets SET t_number={$ticket}"); echo $ticket;
HTML Code
<html> <head> <script src="jquery-1.10.1.min.js" type="text/javascript"></script> <script type="text/javascript"> $(document).ready(function() { $("#play").load("play.php"); var refreshId = setInterval(function() { $("#play").load('play.php'); }, 1000); }); </script> </head> <body> <div id="play" style="text-align:center;"></div> </body> </html>
Beitrag zuletzt geändert: 19.6.2013 21:13:53 von die-hue -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Was machst du denn mit der refreshId ?
aus deinem snippet ist das nicht ersichtlich.
Versuch es mal so
setInterval(function() { // deinCode $("#play").load('play.php'); }, 1000 * 60 * X); // X =min
oder alle 1000 millisekunden wie dein wunsch
setInterval(function() { // deinCode $("#play").load('play.php'); }, 1000);
oder
var refreshId = setInterval("deinefunktion()",1000); function deinefunktion(){ $("#play").load('play.php'); } // nach logout oder sonstiges clearInterval (refreshId); // loescht den interval "refreshId"
Dein gewünschter Interval ist aber nicht sehr sinnvoll, den bei X usern, legste schnell den Apache durch die massive anzahl der Requests lahm
Beitrag zuletzt geändert: 20.6.2013 19:07:20 von n0tiert -
Hallo,
dein Code ist richtig gedacht, wird aber in den meisten Fällen nicht funktionieren, später mehr dazu. Vorher solltest du mindestens 10 mal darüber nachdenken, ob diese Funktion sinnvoll ist und nötig ist, ich würde 10:1 wetten, dass dies nicht der Fall ist.
Um dir das mal vorzustellen, wenn nur 100 user bei dir auf der Website sind erzeugst du 1.000 Anfragen pro Sekunde, wenn das 10 Leute hier bei lima machen, dann sind es schon 10.000 Anfragen, einen kleinen Server kannst du aber schon bei unter 10.000 Anfragen pro Sekunde abschiessen. Ich weiß nicht wie performant die Systeme hier bei lima versorgt sind, aber ich würde dich binnen Stunden sperren wenn du solchen scheiß bei mir abziehen würdest.
Nun zu deinem Problem, deine Anfragen werden gecacht, das kannst du ändern indem du die Anfragen eindeutig machst, z.B. mit einem timestamp in der Anfrage.
Mit freundlichen Grüßen -
die-hue schrieb:
Ok danke, ich habe den Code nur von einem Tutorial kopiert, dann las ich es eben ohne Ajax laufen, danke für die Hilfe :)
ajax anticache........
var refreshId = setInterval("deinefunktion()",1000 * 60 * 1); // jede minute function deinefunktion(){ $.ajax({ url: "play.php", cache: false // <-- bewirkt anti cache }).done(function( data ) { // antwort in div "play" ausgeben $("#play").html(data); }); }
Beitrag zuletzt geändert: 20.6.2013 20:00:11 von n0tiert -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage