Datenbankänderung abfragen

  • Moin,

    ich bin dabei javascript + php zu lernen. Zum üben habe ich ein Blog programmiert. Das Meiste funktioniert ganz gut

    Nun würde ich gerne neue Blogposts direkt einblenden ohne einen Refresh der Seite. Ich weiß, dass ich mit ajax auf die Datenbank zugreifen kann. Aber sekündlich oder minütlich abzufragen erscheint mir nach ein paar zu vielen abfragen.

    Gib es ein Event was getriggert wird, wenn sich etwas in der Datenbank ändert, bzw kann soetwas umgesetzt werden?


    Gruß capoaira

  • Nun würde ich gerne neue Blogposts direkt einblenden ohne einen Refresh der Seite. Ich weiß, dass ich mit ajax auf die Datenbank zugreifen kann. Aber sekündlich oder minütlich abzufragen erscheint mir nach ein paar zu vielen abfragen.

    Gib es ein Event was getriggert wird, wenn sich etwas in der Datenbank ändert, bzw kann soetwas umgesetzt werden?

    So einfach geht das nicht, dafür müsstest du dich mit WebSockets beschäftigen - aber das geht doch deutlich tiefer als etwas PHP/Javascript. Ich halte es (für diesen Anwendungszweck) auch nicht für notwendig - in Blogs erscheinen nicht so oft neue Einträge als dass der User das sofort ohne Neuladen der Seite sehen müsste (oder das überhaupt erwartet).

  • Eine Umsetzung, obwohl der Vorredner natürlich recht hat (ein Blog postet jetzt nicht jede Minute einen Beitrag), wäre meines Erachtens dann allerdings mit ajax am "besten". Du könntest ja theoretisch im ersten Schritt keine Inhalte abfragen, sondern lediglich jede Minute prüfen, ob sich die Anzahl der Datensätze verändert hat (Select Count (*) ). Jetzt müsstest du theoretisch nur noch die alte Anzahl, also beim ersten Aufruf dieser Funktion, in eine Variable speichern. Im nächsten Step fragst du jede Minute dasselbe, mit dem Unterschied, dass er diesmal die Select Count Anzahl mit der definierten Variable vergleicht. Ist das Ungleich, hast du dein If schon gebildet :-)

  • Jetzt müsstest du theoretisch nur noch die alte Anzahl, also beim ersten Aufruf dieser Funktion, in eine Variable speichern. Im nächsten Step fragst du jede Minute dasselbe, mit dem Unterschied, dass er diesmal die Select Count Anzahl mit der definierten Variable vergleicht.

    Dir ist schon klar dass die Variable mit der Anzahl beim zweiten Aufruf nicht mehr existiert, oder? Außerdem hat der OP ja selbst schon gemerkt dass das etwas viele Requests gibt wenn man jede Minute mit Ajax nachfragt ob was neues da ist - genau dafür gibt es ja Websockets damit eben nur dann was übertragen werden muss wenn auch wirklich was neues da ist (der Server schiebt die Info dann quasi zum Client).

  • Moin,

    vielen Dank, für die antworten. Mir ist klar, dass soetwas bei einem Blog keinen Sinn macht. Ich habe den Blog nur zum Üben gemacht.

    Ich werde mich mal über WebSockets informieren. Mit dem richtigem Stichwort, was ich jetzt kenne, gibt google ja meistens gute Antworten 😊