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?
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.
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.
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.
Tags und Links javascript internet-explorer google-chrome browser firefox