機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

local storage API 非同期処理をしたい場合の注意点

AD

プログラミング

小一時間ハマったのが、inputタグとかで、値を書き換えて、それをlocal storageのkeyに格納したいな、と思った時。
たぶん、試そうとした人、いるのではないでしょうか。

<input id="result" type="text" name="main" value='gege'>
<input type="button" name="button" value="SAVE" onclick="save()"/>

<script type="text/javascript">

function save(){
localStorage.setItem("content", document.getElementById("result").getAttribute('value'));
}

</script>

まずこういうHTMLを用意してもらって。

Chromeデベロッパーツールがあると分かりやすいかと思います。application > storage > local storage です。

それで、このHTMLを表示したら、デベロッパーツールのlocal storageには何も値がないことを確認して、SAVEボタンを押します。

すると、値にgegeって追加されたかと思います。

では、inputの値をhogeとでも書き換えて、もう一度ボタンを押してください。変わるはずですよね?

…でも、変わらない。

こういうハマり方をしました。うーん、なんでやろ。

こういう非同期処理をしたい場合は、普通のJavascript+HTMLではなく、angularJSのようなライブラリを使うと良いと思います。

SPONSOR

オンラインブートキャンプ全12コースの「ウケ放題」 AD

コメントを残す

Close Menu