Benachrichtiguns-System

tsbmusic

Erfahrenes Mitglied
Hallo zusammen,

ich hab mir jetzt mal so ein kleines Benachrichtiguns-System für meine Website gebastelt.

Der Code sieht so aus:

Javascript:
Code:
function updateNotifications(){
        $.ajax({
            url : "scripts/notifications.php?v=0",
            type : "POST",
            success : function(response) {

                if (response > 0) {
                    $('#newNotifications').html(response).show();
                } else {
                    $('#newNotifications').hide();
                }
            }
        });
    }
    function updateMsg(){
        $.ajax({
            url : "scripts/notifications.php?v=2",
            type : "POST",
            success : function(response) {

                if (response > 0) {
                    $('#newMsg').html(response).show();
                } else {
                    $('#newMsg').hide();
                }
            }
        });
    }
    function loadAll(){
        updateNotifications();
        updateMsg();
    }
    setInterval("loadAll()", 2000);

Die dazugehörige notifications.php sieht so aus:
Code:
if($GLOBALS['isUser'] && $_REQUEST['v'] == 0){
    $countNotifications = $GLOBALS['DB']->query("SELECT * FROM notifications WHERE to_id = '" . $GLOBALS['thisUser']['uid'] . "' AND viewed = 0");
    $result = count($countNotifications);
    echo $result;
} elseif($GLOBALS['isUser'] && $_REQUEST['v'] == 2){
    $countMessages = $GLOBALS['DB']->query("SELECT count(*) as messages FROM private_messages WHERE to_id = '" . $GLOBALS['thisUser']['uid'] . "' AND opened = 0");
    $result = $countMessages[0]['messages'];
    echo $result;
}  else {
    echo 0;
}

Wenn ich die Seite jetzt aber lade kommt ständig "Apache HTTP Server funktioniert nicht mehr" (Ach ja, ich benutze Xampp). Woran kann das liegen?

Gruss
tsbmusic
 
Aber ich hab das auch schon mit 5 Sekunden ausprobiert und es kam immernoch.

Oder ich frage mal so: Wie würdet ihr das denn machen so ein Benachrichtiguns-System?
 
Zuletzt bearbeitet:
Ich weiß jetzt nicht, ob dein konkretes Problem mit der grundlegenden Umsetzung zu tun hat, aber nein ich würde es nicht so angehen. Das ist der einfachste und "naive" Ansatz, auf den man zuerst kommt, aber dann merkt man irgendwann, dass es nicht das gelbe vom Ei ist.

Du fragst ständig nach, ob es etwas neues gibt und bekommst vermutlich oft als Antwort "nein". Als Kind nervt man auf Autofahrten häufiger seine Eltern mit "Sind wir bald da?" und bekommt jedes Mal "nein" zu höhren. Stattdessen wäre es sinnvoller, wenn man den Eltern sagt, sie sollen "ja" Antworten, sobald man da ist, ohne das man ständig fragen muss. (Was ein tolles Beispiel :-D)
Jetzt stell dir vor du hast 1000 Kindern, dann könnten die Eltern die Anfragen nicht mehr alle bewältigen und manche Kindern würden sich vernachlässigt fühlen (entspricht z.B. einer langen Ladezeit oder einem Timeout).

Folgende Stichworte sollten dich auf den richtigen Pfad bringen.
-Comet Server (http://en.wikipedia.org/wiki/Comet_(programming))
-AJAX Push, Long Polling (http://en.wikipedia.org/wiki/Push_technology)
-Websockets (http://en.wikipedia.org/wiki/WebSockets)
 
Danke, das ist sowas was ich gesucht hab. Ich verstehs zwar noch nicht, aber ich versuch mich mal reinzuarbeiten.

Gruss
tsbmusic

Edit: Sorry, ich krieg da iirgendwie keinen Sinn rein. Könnte mir das jemand erklären?
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück