質問: JSON.parse(localStorage.getItem("samplearray")); *確認したこと ・格納するsamplearrayには確実に1つ以上のオブジェクトが入っている ・ユーザー環境によりlocalstorageが使えないかどうかの確認を行なった結果、localstorageが使えない環境だったユーザーは1%未満であり、localstorageが使えるユーザーでもresultがnullで返ってきた localstorageがうまく動かない時の理由、可能性について教えてもらえると幸いです。 情報が不足している場合は、コメントください。
回答: localStorage に限らず、サイトデータは記録可能なサイズ上限があります。 ちょっと古い情報ですが モダンブラウザのストレージ容量まとめ 2014-01-28 コードが問題ない場合、「オリジンごとに定められた保存サイズ上限」を疑うべきでしょう。 追記)サイズに関しては的はずれに感じましたので、その他に原因がないか思い起こしてみました。 localStorageは基本的に同期処理ですし、ページ間で同期を取る遅延が発生している可能性もあります。 この遅延に関してlocalStorage以降で登場した IndexedDBでは複数のタブで開いていて、いずれかのページでDB更新があると、他のタブと同期を取るAPI(コードを組む必要がありますが)もあるくらいです。 localStorage でも発生していたからこそ、IndexedDBでは同期を取るAPIが付与されたのではないでしょうか。 ブラウザの操作を少し待ってみて値が得られるかどうかをチェックし、意図したとおりの挙動なら、端末操作を敢えて待たせるように実装する方法がありそうです。