Maximale Größe von location.hash im Browser

10

Ich möchte den location.hash verwenden, um den Status meiner Client-App zu verschlüsseln, sodass Benutzer die App ganz einfach mit der URL als Lesezeichen speichern und / oder freigeben können.

Es gibt eine Anzahl von (veralteten) Themen auf der maximalen Länge einer URL, insbesondere Grenzen im Internet Explorer. Es ist jedoch nicht klar, was die maximale Größe von location.hash ist. Da der Hash nur im Client existiert, sind Einschränkungen von http oder Servern nicht relevant.

Ich machte ein einfaches Spiel, um das zu testen: Ссылка . In Chrome und Firefox (Ubuntu 12.04) scheinen Hashes bis zu 50K zu funktionieren. Bedeutet das, dass ich sie verwenden könnte, um den Staat zu lagern, oder überhöre ich andere Einschränkungen?

    
Jeroen 27.04.2013, 00:47
quelle

3 Antworten

4

Basierend auf Ihrer JS-Fiddle (nun eine modifizierte Version davon Ссылка (siehe Codebeispiel unten)) können Sie testen viele Browser, um eine effektive Grundlinie zu erhalten.

  • Chrome: 50K +
  • Firefox: 50K +
  • Safari (iOS): 50K +
  • Internet Explorer 11: Fails zwischen 2.025 und 2.050
  • Microsoft Edge: Fails zwischen 2.025 und 2.050

Unabhängig davon, was andere Browser unterstützen, müssen Sie, wenn Sie Microsoft Edge oder IE11 unterstützen müssen, unter 2.025 Character-Hashes bleiben. Da IE (und damit ich rate Edge) in der Vergangenheit URL-Längenbeschränkungen hatte ... kann dies auch von der Länge Ihrer Basis-URL abhängen.

%Vor% %Vor%
    
scunliffe 13.06.2017 22:44
quelle
-1

Eine solche irreführende Erklärung. Hash hat keine Größenbeschränkungen und kann beliebig oft verwendet werden. Denken Sie daran, dass es kein URL-Teil ist.

    
Peter 27.09.2014 00:01
quelle
-2

Was ist die maximale Länge von a URL in verschiedenen Browsern?

Dies beinhaltet normalerweise nicht den Hash-Teil, also glaube ich nicht, dass es einen Standard gibt.

Ich möchte darauf hinweisen, dass der Fragment-Bezeichner normalerweise verwendet wird, um ein Fragment eines Dokuments zu identifizieren, und nicht dazu verwendet werden sollte, den gesamten Status einer App zu speichern. Sie sollten stattdessen lokalen Speicher verwenden.

Wenn Sie die Möglichkeit zum Freigeben oder Lesezeichen haben möchten, sollten Sie den Status der Anwendung auf der Serverseite speichern und die Fragmentkennung zum Speichern der ID des gespeicherten Status verwenden.

    
Bart 27.04.2013 01:35
quelle