Ankündigung

Einklappen
Keine Ankündigung bisher.

Programmier Muster/Art/Technik.. Fragen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Programmier Muster/Art/Technik.. Fragen

    Hallo, liebe Community!

    Ich bin gerade am Programmieren eines Web-Systems welche die Daten von einem Microcontroller im Web-Interface ausgibt.
    Es gibt schließlich mehrere Datenbank Tabellen.

    Nun die Aufgabe:
    Login (DB-UsersTabelle), auf der Seite sind es 4-5 Blöcke, die sollen dynamisch geladen werden (je nach Spezifik des Blockes, z.b. eine DB-Tabelle für einen Block).
    Die Inhalte sollen sich automatisch aktualisieren, nur wenn eine Änderung in dem Datenbank(mySQL) ausgeführt wurde.

    So, und nun die Frage: Wie?!
    Da ich mir PHP selber beigebracht habe, und noch nie größere Projekte von Null programmiert habe, bitte ich euch mich zu unterstützen.

    Wie ich es mir vorgestellt habe:

    eine HTML-Seite mit JS/jQuery für das Laden der Blöcke:
    geladen wird mittels xmlhttp-request von einer PHP-Datei, je nach [GETs], die die Daten rausschmeisst.

    1. Wie soll PHP die Daten ausgeben? als ein Array oder (so hätte ich es gemacht) gleich HTML formatiert also:
    Code:
    <div class="foo"><h1 class="titel">Daten</h1><br />
    <h1 class="info">Text..</h1><a href="Link aus der DB">Text</a>...
    </div>
    2. Wie checke ich, ob die Daten sich geändert haben?
    Ich möchte nun umgehen, dass es jede 10 sec gecheckt wird, da die Daten sich Tagelang nicht ändern werden, oder aber auch jede Minute. Besteht die Möglichkeit, dass eine DB-Makro (bei Änderung) irgendwas ausführt, was dann ?unerwartet? die Daten an die Seite schickt? Wie ist es z.B. bei Facebook-Chat geregelt? man kriegt nur dann die Nachricht, wenn die geschickt wurde, und nicht nach 10 min...


    3. Wie soll ich mit PHP programmieren: für jeden Zweck eine PHP-Datei (nicht OOP):
    getBlock.php mit
    PHP-Code:
    ... if ($get[...] == 1)  include Block1.php//Pseudo 
    so hätte ich es gemacht =)
    oder eine riesige Datei, oder einen riesigen Class, der alles umfasst? Wie ist es Performancemäßig?

    4. Login: Session mit js?!
    Wenn ich eine Session "extern" erstelle, durch einen Request auf PHP-Datei, die mir die Session startet, bleibt sie dann existieren, bzw. wird sie richtig erstellt, sowie aktualisiert, wenn der User sich bewegt und per Request abfragen sendet?
    Oder lieber anstatt html eine PHP-Seite, wo nun die Session gecheckt wird?

    5. Ich möchte gerne Cookie NICHT verwenden, besteht die Möglichkeit, die Session auf z.B. 24 oder mehr Stunden zu stellen? Vorteile/Nachteile?

    6. Lieber mehr JS oder PHP?!
    Also sollte ich was machen, was keine bestimmte Sprache braucht, soll ich es lieber per PHP regeln, oder JS? Was ist schneller?

    7. PHP immer noch "in"?
    Höre immer wieder, dass mehrere fangen an, noPHP Lösungen anzuwenden, weil es so "schnell und cool" ist, blablabla... Node.js z.b.
    ist das so?!

    Dokumentation/Plannung:
    8. Ich mache es für meinen Stiefvater, er braucht ein Entwicklungsbericht/Doku von mir, um mich für meine zukünftige Bachelorarbeit vorzubereiten =).
    Ich kann mir dadrunter wenig vorstellen.
    Was kann ich Ihm außer DB-Model, Code-Baum (Files Abhängigkeiten) noch Vorstellen? Also wenn man es wirklich als eine Vorbereitung auf Bachelor annimmt...


    Ich möchte anfangen richtig zu Programmieren, dennoch, da ich es mir selbst beigebracht habe, fehlen mir wenige (o. viele?) Kenntnisse. Ich gehe erstmal davon aus, dass es mit Praxis dann selber kommt. Hoff =)

    Ich werde mich riesig freuen, wenn Ihr eure Meinung zu meinen Fragen sagt, bzw. Antworten gebt, am Besten mit Begründung.

    Falls die Fragen zig-Mal beantwortet wurden, seit mir bitte nicht Böse. Am Anfang habe ich mir 46 Fragen aufgeschrieben, die ich dann durch die Suche beantworten könnte. Die Fragen die geblieben sind, die ich euch stelle, sind mehr Erfahrungsfragen, worauf man nicht immer eine Antwort findet.

    Vielen lieben Dank,
    mit freundlichen Grüßen,

    Alexander
    mfg Alexander
    PHP-Code:
    if($happy)
       
    $happy false


  • #2
    Was n Batzen, ich versuch mal einige zu Beantworten:

    1: Mit JSON bist du am besten bedient, wenn du sowenig wie möglich Doppelt übertragen willst. Dazu dann aber noch ein JS-Template-System. Allerdings wäre es auch ausreichend, wenn du gleich HTML sendest.

    2: Google mal nach Long-Polling. Facebook nutzt allerdings tatsächlich ein Ajax-Request alle X Sekunden.

    3: Würde dafür eher ein Framework nehmen, also OOP und URL's "Rest"ful aufgebaut.

    4: Was heißt extern? Auch ein AJAX-Request sendet Cookies mit, die Session ist also auch dort verfügbar

    5: Natürlich kannst du die Session auf 24 Stunden begrenzen, das Sessioncookie wäre aber schon wichtig, außer du willst die SessID an die URL dranklatschen.

    6: Schneller und "angenehmer" ist es natürlich mit JS, aber auch um einiges mehr Arbeit. Da musst du dann abwägen.

    7: Quatsch. PHP ist noch "in".

    8: Schonmal was von Lasten- und Pflichtenheft gehört?
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Hey tkausl!
      Danke für deine schnelle Antwort.
      nun gehe mal auf die Suche nach, von dir empfohlenen Sachen =)
      noch paar Ergänzungsfragen bzw. Erläuterungen:

      5. Session zeitlich begrenzen ja, aber kann man umgehen, dass die Automatisch, nach dem Browserende zerstört wird (z.b. erst nach 24 Std. zerstören, wenn der User solange nicht die Seite öffnet)? Also ähnliche Funktion wie Cookie, dafür aber Serverseitig.

      8. Lasten und Pflichtenheft - ja, gehört, sogar ziemlich viel (hatte vor kurzem Projektmanagment), hasse es aber =D
      Danke für den Denkanstoß!
      mfg Alexander
      PHP-Code:
      if($happy)
         
      $happy false

      Kommentar


      • #4
        5: Bin mir nicht sicher, was du genau meinst. Du kannst natürlich A: Die Cookielaufzeit begrenzen, B: Die Sessionlaufzeit auf ein Maximum begrenzen und außerdem noch C: Die Sessionlaufzeit auf Inaktivitätszeit begrenzen.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          2. Zusätzliche Stichwörter nach denen du mal suchen könntest sind "WebSockets" und "Comet" (evtl. mit Zusatz: "push notification")

          Kommentar


          • #6
            Zitat von tkausl Beitrag anzeigen
            5: Bin mir nicht sicher, was du genau meinst. Du kannst natürlich A: Die Cookielaufzeit begrenzen, B: Die Sessionlaufzeit auf ein Maximum begrenzen und außerdem noch C: Die Sessionlaufzeit auf Inaktivitätszeit begrenzen.
            Was ich meine ist:
            Mein Wissensstand
            Cookie werden bei dem User gespeichert und haben eine "Lebenszeit".
            Egal ob der User aktiv oder nicht ist, wenn er innerhalb dieser Lebenszeit die Seite besucht, ist er angemeldet.

            Sessions werden auf dem Server gespeichert, und wie ich dachte, werden "sofort" nach dem schließen des Browsers gelöscht.
            Irre ich mich da? Wenn ja, dann kann man doch die Session anstatt cookie voll anwenden (fürs login reicht ja)?

            Zitat von Tropi Beitrag anzeigen
            2. Zusätzliche Stichwörter nach denen du mal suchen könntest sind "WebSockets" und "Comet" (evtl. mit Zusatz: "push notification")
            Vielen Dank!
            mfg Alexander
            PHP-Code:
            if($happy)
               
            $happy false

            Kommentar


            • #7
              Zitat von akdes Beitrag anzeigen
              Sessions werden auf dem Server gespeichert, und wie ich dachte, werden "sofort" nach dem schließen des Browsers gelöscht.
              Irre ich mich da? Wenn ja, dann kann man doch die Session anstatt cookie voll anwenden (fürs login reicht ja)?
              Woher soll der Server wissen, wann du deinen Browser schließt?

              Du brauchst aber einen Cookie, damit du den User identifizieren kannst und ihm zu seiner Session zuordnen kannst.

              Zitat von akdes Beitrag anzeigen
              Cookie werden bei dem User gespeichert und haben eine "Lebenszeit".
              Egal ob der User aktiv oder nicht ist, wenn er innerhalb dieser Lebenszeit die Seite besucht, ist er angemeldet.
              Cookies können eine Lebenszeit haben. Ohne Lebenszeit halten sie solange, wie der Browser geöffnet ist, werden also beim beenden gelöscht.
              Jein. Wenn du ein Session-Cookie hast muss auch auf der Serverseite diese Session noch existieren.
              Zitat von nikosch
              Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

              Kommentar


              • #8
                Zitat von tkausl Beitrag anzeigen
                3: Würde dafür eher ein Framework nehmen, also OOP und URL's "Rest"less aufgebaut.
                Leider kann ich damit wenig anfangen, könntest du es bissl näher erklären?
                Vielen Dank im Voraus!
                mfg Alexander
                PHP-Code:
                if($happy)
                   
                $happy false

                Kommentar


                • #9
                  Zitat von akdes Beitrag anzeigen
                  Leider kann ich damit wenig anfangen, könntest du es bissl näher erklären?
                  Was genau? Framework? OOP? Rest?
                  Zitat von nikosch
                  Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                  Kommentar


                  • #10
                    Was für Framework, und was meinst du mit Rest"less
                    mfg Alexander
                    PHP-Code:
                    if($happy)
                       
                    $happy false

                    Kommentar


                    • #11
                      Meinte Restful, sorry:
                      http://en.wikipedia.org/wiki/Represe...o_web_services
                      Zitat von nikosch
                      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                      Kommentar


                      • #12
                        Zitat von tkausl Beitrag anzeigen
                        Woher soll der Server wissen, wann du deinen Browser schließt?

                        Du brauchst aber einen Cookie, damit du den User identifizieren kannst und ihm zu seiner Session zuordnen kannst.


                        Cookies können eine Lebenszeit haben. Ohne Lebenszeit halten sie solange, wie der Browser geöffnet ist, werden also beim beenden gelöscht.
                        Jein. Wenn du ein Session-Cookie hast muss auch auf der Serverseite diese Session noch existieren.
                        Danke! Ich werde mich noch bissl reinlesen =)
                        mfg Alexander
                        PHP-Code:
                        if($happy)
                           
                        $happy false

                        Kommentar


                        • #13
                          ok, danke. Es wird nicht benötigt, da als Ausgabe nur eine Seite ala "my.php/my.html" geplannt war =) bzw. noch eine zum login (oder nicht... bin noch am planen)
                          mfg Alexander
                          PHP-Code:
                          if($happy)
                             
                          $happy false

                          Kommentar

                          Lädt...
                          X