roundturn: Daten aus einer Javascript Funktion in einen Warenkorb legen

Beitrag lesen

Moin,

Autsch. Das heißt, ein Nutzer kann alle Plätze für sich reservieren ohne einen Kauf zu tätigen und blockiert damit alle Plätze für alle Zeit, niemand anderes kann mehr Karten kaufen und die Veranstaltung findet vor leeren Reihen statt?

Irgendwas muss da laufen und ausgewählte, aber nicht gekaufte Plätze wieder freigeben.

Und wie mache ich das?

Cronjob?

wie wäre es denn für den Anfang mit:

  • Benutzer muss sich als erstes authentifizieren
  • Jede Vorreservierung bekommt einen Timestamp
  • Es wird eine Offenzeit festgelegt, die dem User auch (ungefähr) angezeigt werden kann am Client. Diese zählt seit Beginn des Reservierungsvorganges also seit dem ersten Click.
  • In der Session wird eingetragen, wieviele Vorreservierungen bestehen (Limit festlegen!)
  • Wenn der User kauft, wird vorher der Timestamp aller vorreservierten Plätze geprüft, der Kauf eingetragen und das Limit in der Session zurückgesetzt. Danach kann er weitere Plätze buchen.

Bei der Abfrage, welche Plätze noch frei sind, wird die Timestamps geprüft. Ist das Zeitlimit bereits abgelaufen, ist der Platz automatisch wieder frei und bekommt beim Vorreservieren einen neuen Timestamp.

Und übrigens:
Wenn man das mit einer Datenbank macht, muss man zuerst prüfen, ob sich seit dem letzten Lesen etwas verändert hat und darf nur dann etwas ändern, wenn alle Daten gleich geblieben sind. Dafür benutzt man die Session als Zwischenpuffer, da man den Vorgang nicht in SELECT und UPDATE aufteilen darf (ohen die Tabelle oder den Satz zu sperren, was aber über einen Roundturn hinweg schwierig ist), sondern die Prüfung beim Update in der WHERE-Klausel vornehmen muss.

Beim Arbeiten mit Low-Level-Dateien gilt das analog: Erst (SHARED) lesen, in die Session eintragen und zum Client senden. Bei Änderungen erst die Datei EXCLUSIV sperren, dann nochmal lesen (!) und mit dem Sessionpuffer vergleichen, dann die Daten geändert zurückschreiben.

Dann geht auch nichts schief mit den Raceconditions und den Roundturns.

Response Code 200
roundturn

0 81

Daten aus einer Javascript Funktion in einen Warenkorb legen

ReiniG
  • javascript
  • php
  1. 0
    Robert R.
    1. 0
      Gunnar Bittersmann
      • ux
      1. 0
        chorn
        1. 0
          Gunnar Bittersmann
        2. 0
          Robert R.
          1. 0
            Gunnar Bittersmann
            1. 1
              dedlfix
              1. 0
                Gunnar Bittersmann
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    ReiniG
                    • javascript
                    • ux
                    1. 0
                      Julius
                      • datenbank
                      • formulare
                      • javascript
                    2. 0
                      Gunnar Bittersmann
                      1. 0
                        roundturn
                        • javascript
                        • programmiertechnik
                        • webserver
                2. 0
                  pl
                  1. 0
                    Auge
                    1. 0
                      pl
                      1. 0
                        Gunnar Bittersmann
                        1. 0
                          Gunnar Bittersmann
                      2. 0
                        Auge
                      3. 0
                        dedlfix
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            dedlfix
                            1. 0
                              Gunnar Bittersmann
                              1. 1
                                dedlfix
                                1. 1
                                  Tabellenkalk
                                2. 0
                                  ReiniG
                                3. 0
                                  Gunnar Bittersmann
                                  1. 0
                                    Auge
                                    1. 0
                                      Gunnar Bittersmann
                                      1. 1
                                        Auge
                                        1. 0
                                          Gunnar Bittersmann
                                          1. 0
                                            Auge
                                            1. 0
                                              Gunnar Bittersmann
                                              1. 0
                                                Auge
                                                1. 0
                                                  dedlfix
                                                  1. 0
                                                    Auge
                                                    1. 0
                                                      Gunnar Bittersmann
                                      2. 0
                                        Christian Kruse
                                        1. 0
                                          Gunnar Bittersmann
                  2. 0
                    Gunnar Bittersmann
            2. -1
              roundturn
              • programmiertechnik
              • webserver
              1. 0
                Gunnar Bittersmann
                • ux
                1. 0
                  dedlfix
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      dedlfix
                      1. 0
                        Gunnar Bittersmann
                      2. 0
                        Mitleser
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            Mitleser
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                Christian Kruse
                                1. 0
                                  Gunnar Bittersmann
                              2. 0
                                Mitleser
                          2. 0

                            Kompromissvorschlag zur Güte

                            Camping_RIDER
                    2. 0
                      roundturn
                      • programmiertechnik
                      • ux
                  2. 0

                    Client/Server, richtige Protokollwahl auch auf höheren Schichten

                    roundturn
                    • programmiertechnik
                    • webserver
        3. 0
          Christian Kruse
      2. 0
        Robert R.
        • programmiertechnik
        1. 0
          Gunnar Bittersmann
  2. 0
    Robert B.
    1. 0
      dedlfix
      1. 0
        Robert B.
        1. 0
          dedlfix
          1. 0
            MudGuard
  3. 0
    Julius
  4. 1
    Gunnar Bittersmann
    • html
    • javascript
    1. 1
      Gunnar Bittersmann
  5. 0

    Anzahl der parallelen XHR?

    Robert R.
    • browser
    • javascript
    1. 0
      Camping_RIDER
      1. 0
        Robert R.
        1. 0
          Camping_RIDER
          1. 0
            Robert R.
            1. 0
              Camping_RIDER
              1. 0

                Anzahl der parallelen XHR? Das passt in meinThema!

                TS
                1. 0
                  Camping_RIDER
                  1. 0
                    TS
                    • css
                    • javascript
                    1. 0
                      Camping_RIDER
                      1. 0
                        TS
                        1. 0
                          Gunnar Bittersmann
                          • css
                          • javascript
                          • progressive enhancement
                        2. 0
                          Camping_RIDER