Hallo Ich habe eine Website mit Hunderten von TV-Shows und Zehntausenden von Episoden. Ich möchte, dass der Benutzer (der sich nicht angemeldet hat) seine Lieblingsshows speichern und die Folgen, die er beobachtet hat, markieren und diese Daten mit Cookies speichern kann.Beste Performance-Auswahl für Cookie-Arrays in PHP und JS?
Also ich habe es bereits in PHP und JS implementiert. Ich wollte nur wissen, was die beste Wahl ist, wenn es um Cookies geht.
Jetzt speichern ich die Daten in einem Cookie namens "Favoriten", das ist ein JSON-codiertes Array, das einfach die IDs der TV-Shows enthält. In dem Cookie 'überwacht' sind die IDs der Episoden, die der Benutzer als überwacht markiert hat.
Was ist die beste Option für Leistung und Speicher? Sie müssen bedenken, dass dies auch für Mobiltelefone gedacht ist. Wenn der Nutzer also Tausende von Episoden als überwacht markiert, möchte ich nicht, dass dies alles verlangsamt.
Der folgende Code ist kein echter Code, sondern dient nur dazu, Ihnen die Unterschiede zwischen den Optionen verständlich zu machen.
Option 1
ein Cookie 'angeschaut' genannt, das ein JSON codierte Array die IDs enthält, ist. Ich würde müssen überprüfen, ob das Array diesen Wert
$_COOKIE['watched'] = array(1,2,3,4,...)
Mit dieser Option enthält, in der TV-Show Seite würde ich immer das gesamte Array holen muß und prüfen, ob jede einzelne Episode ID ein Wert im Array .
Option 2
ein Cookie für jede ID, genannt zum Beispiel "watched_ [ID]". Ich würde nur prüfen, ob es existiert oder nicht.
exists($_COOKIE['watched_1']) ? watched : !watched
exists($_COOKIE['watched_2']) ? watched : !watched
Option 3
ein Cookie aufgerufen 'angeschaut', die ein assoziatives JSON codierten Array ist ein Array für jede TV-Show, genannt zum Beispiel enthält 'angeschaut [show_ID]', und jeder von Diese enthalten nur die IDs der Episoden, die als überwacht markiert sind und zu dieser Show gehören. (So in der TV-Show Seite, die ich zuerst prüfen ‚angeschaut [show_ID]‘ dann schon ich habe alle beobachteten Folgen, statt jede einzelne Episode ID mit dem Array zu vergleichen ‚angeschaut‘ von Option 1
$_COOKIE['watched'] = array(
1 => array(1,2,3),
2 => array(4,5,6)
)
Beachten Sie, dass andere Optionen möglich sind; z.B. ein Tracking-Cookie und serverseitiges Speichern oder Verwenden von LocalStorage und AJAX. Ich sage nicht, dass sie besser sind, aber ich sage nur, dass sie existieren. – JohannesB
Seit dem Moment, in dem ich herausgefunden habe, dass JS Cookies bekommen und setzen kann, habe ich nie überlegt, AJAX zu benutzen, nur um einen Cookie zu checken. Warum sollte ich den Server stören, wenn ich das vermeiden kann? Jedenfalls habe ich die 3 Optionen notiert, die meiner Meinung nach am besten sind. Natürlich bin ich offen für jeden anderen Vorschlag, aber denken Sie daran, dass ich nicht nach der besten Option gefragt habe, um Cookies auf meiner Website zu behandeln. Ich fragte nach dem besten Weg, Daten in Cookies-Arrays zu verarbeiten. –
Der AJAX wird dann ausschließlich zum Rendern Ihrer Seite verwendet und dient zum Generieren dynamischer Inhalte basierend auf LocalStorage. – JohannesB