このpushState
メソッドは状態オブジェクトを受け入れます。Firefoxのドキュメントによると、このオブジェクトの最大サイズは640kbです。ブラウザが実装できる最小の最大サイズは仕様で定義されていますか?主要なブラウザが少なくとも100kbを提供することを合理的に期待できますか?
編集:Chromeでテストしましたが、1MBを超える状態オブジェクトでも機能していました。
このpushState
メソッドは状態オブジェクトを受け入れます。Firefoxのドキュメントによると、このオブジェクトの最大サイズは640kbです。ブラウザが実装できる最小の最大サイズは仕様で定義されていますか?主要なブラウザが少なくとも100kbを提供することを合理的に期待できますか?
編集:Chromeでテストしましたが、1MBを超える状態オブジェクトでも機能していました。
仕様では制限を設定していませんが、さまざまなブラウザーには独自の制限があります。
Firefox は十分に文書化されており、あなたが言ったように、640kB (「誰もが必要とするほどの RAM」) です。
Chrome や Internet Explorer のリストはどこにも見つかりませんでしたが、簡単なテストで次のことがわかりました。
少なくとも 10MB まで (場合によってはそれ以上) 動作する Chrome、
IE は 1MB で限界に達しています (IE11 では、手元にあるのはこれだけです)。
したがって、将来の人々のために要約すると、 history.state オブジェクトのサイズ制限は640kB
、Firefox、1MB
Internet Explorer 11、および少なくとも 10Mb
Chrome の場合です。
編集: テストされたバージョン: IE: 11、Chrome: 33、Firefox: MDN の最大サイズを文書化しているため、無関係です:)。
いいえ。ここの規範的なドキュメントはhttp://www.whatwg.org/specs/web-apps/current-work/multipage/history.html#dom-history-pushstateであり、データの制限についても言及していませんサイズ。ただし、別の制限が提案されています。
ユーザー エージェントは、ページごとにセッション履歴に追加される状態オブジェクトの数を制限する場合があります。
この例でわかるように、仕様は通常、ハード制限について言及することを避け、ブラウザー メーカーの裁量に任せています。そのため、データ サイズの制限の可能性を考慮して将来のある時点で仕様が改訂されたとしても、実際の数値が得られる可能性は低いです。代わりに、「一般的なユースケースに十分な大きさ」になります。