Wird in JS ein Cookie sehr langsam geschrieben?

8

Ich muss meine Website auf der Client-Seite schneller machen. Ich frage mich, ob meine übermäßige Javascript-Cookie-Manipulation den Browser verlangsamen könnte. Es verwendet die Festplatte, die die langsamste Komponente eines Computers ist. Auf einer stark fragmentierten Festplatte könnte Cookie-Manipulation den Browser einfrieren?

JS macht irgendwelche Optimierungen für das Schreiben / Lesen von Cookies (Caching, etc ..). Könnte ich diese Optimierungen nutzen, um meine Site zu verbessern?

Das Ersetzen von clientseitigen Cookies durch eine serverseitige Datenbank kommt nicht in Frage, da meine Server bereits überlastet sind.

    
JoJo 27.09.2010, 22:12
quelle

4 Antworten

0

Cookies sind Teil der Request- und Response-Header, so dass sie geladen werden müssen, um jede Anfrage und Antwort zu laden. Zweitens sind Sie auf insgesamt 50 Cookies pro Domain und 4k pro Cookie beschränkt. Drittens haben viele Benutzer absolut Angst vor Cookies und neigen dazu, sie zu löschen, auch wenn sie harmlos sind.

Aus diesen drei Gründen verwenden Webentwickler sie nur selten, wenn dies absolut notwendig ist (z. B. Sitzungs-Tokens). Da Webentwickler sie nur sehr selten verwenden, gibt es nur wenige "Best Practices" um sie herum und sie werden nicht besonders beachtet.

Ich würde sicherstellen, dass es tatsächlich mit den Cookies interagiert, bevor es angesprochen wird. Die Implementierung ist Browser-spezifisch, so dass Sie wahrscheinlich sehr unterschiedliche Ergebnisse dieser Tests sehen werden, je nachdem, welchen Browser Sie verwenden.

    
Matt Briggs 27.09.2010, 22:27
quelle
11

Es gibt einige Möglichkeiten, wie Sie Ihre Seite auf der Client-Seite beschleunigen können, obwohl ich vermute, dass die Reduzierung der Cookie-Nutzung bestenfalls nur ein paar Mikrosekunden sparen würde. Im Allgemeinen stellen Sie sicher, dass Sie nur speichern, was Sie brauchen.

Es gibt jedoch viele andere Optimierungen, die Sie tun können, wie zum Beispiel:

  • Ihre Dateien als gezippten Inhalt bereitstellen
  • Stellen Sie sicher, dass Ihre Website Cache-fähig ist
  • Verwenden von CSS-Sprites und Kombinieren von JavaScript- und CSS-Dateien zum Reduzieren von HTTP-Anforderungen (reduziert auch die Belastung von Ihrem Server)
  • Minimierung von Javascript, CSS und HTML

Dies sind alles bewährte Methoden zur Reduzierung der Seitenladezeiten.

Weitere Informationen dazu, wie Sie Ihre Seite schneller laden können, erhalten Sie mit dem YSlow! Plugin für firefox / firebug Ссылка

    
Randy the Dev 27.09.2010 22:18
quelle
0

Cookie-Manipulation selbst wäre nicht leistungsintensiv. Cookies werden jedoch auf Basis der Pfad- und Domäneneinstellungen Ihrer Cookies bei einigen oder allen Ihrer HTTP-Anfragen (sowohl "hoch" als auch "down") getaggt. Wenn Sie ein Kilobyte Cookie haben und 10 Anfragen pro Seite machen, erhöhen Sie im Wesentlichen die Nutzlast für Anfragen und Antworten um jeweils 10 kb.

Weitere Informationen finden Sie ServeFromCookielessDomain .

    
Chetan Sastry 27.09.2010 22:29
quelle
0

+1 für eine gute Frage, wenn auch mit erschreckenden Auswirkungen.

Alles, was zu viel getan wird, kann möglicherweise Auswirkungen auf die Leistung haben, obwohl dieses in fast jedem Fall marginal ist. Mir sind keine Optimierungen bekannt, die von JavaScript zum Lesen / Schreiben von Cookies vorgenommen werden, aber die Lese- / Schreib-Caches der meisten Festplatten-Controller sollten diesen I / O bis zur Nachlässigkeit ausgleichen.

Warum ist es unheimlich?

  1. Cookies können Größen- / Mengenbeschränkungen aufweisen: Ссылка und Ссылка

  2. Cookies können manipuliert werden, so dass sie nicht sicher sind (es sei denn, Sie verschlüsseln die Werte stark, was sich natürlich auf die Leistung auswirkt und ist immer noch eine schlechte Idee).

  3. Cookies sind manchmal deaktiviert.

Sie haben erwähnt, dass Ihre Datenbank langsam ist. Wenn Sie jedoch einige Sitzungsvariablen hinzufügen, wird Ihre Datenbank nicht zusätzlich belastet. Oder versuchen Sie, clientseitige Daten im Speicher zu manipulieren oder sogar einige Variablen (nicht sichere Informationen, natürlich) in der Abfragezeichenfolge zu übergeben.

    
Tim Medora 27.09.2010 22:21
quelle

Tags und Links