回答編集履歴
2
文章表現を修正
test
CHANGED
@@ -74,7 +74,7 @@
|
|
74
74
|
|
75
75
|
0. `window.onload`に関数を設定。
|
76
76
|
|
77
|
-
0. ページ読み込みが完了し、`window.onload`に設定した関数
|
77
|
+
0. ページ読み込みが完了し、`window.onload`に設定した関数が実行される。
|
78
78
|
|
79
79
|
0. `var count_load = localStorage.getItem("count1");`を実行。
|
80
80
|
|
1
改めて読みなおしたところ、分かりにくいと感じた表現や文章を修正
test
CHANGED
@@ -86,7 +86,7 @@
|
|
86
86
|
|
87
87
|
|
88
88
|
|
89
|
-
このうち、カウントに使用されている変数`count1`は、1番目と3番目の処理、
|
89
|
+
このうち、カウントに使用されている(と思われる)変数`count1`は、1番目と3番目の処理、
|
90
90
|
|
91
91
|
コードで言えば、以下の箇所のみで使用されているように見えます。
|
92
92
|
|
@@ -110,7 +110,7 @@
|
|
110
110
|
|
111
111
|
値を`0`に初期化した後、カウントアップして`1`にしている。ただそれだけです。
|
112
112
|
|
113
|
-
「この変数の値がLocalStorageに保存される」事がこのコードの要件だと考えられますが、このコードでLocalStorageに保存されているのは、id属性に`dayCount`が指定された要素(`<div id="dayCount"></div>`)内の「`innerHTML`の値」だけです。
|
113
|
+
「この変数の値がLocalStorageに保存される」事がこのコードの要件(本来求める動作)だと考えられますが、このコードでLocalStorageに保存されているのは、id属性に`dayCount`が指定された要素(`<div id="dayCount"></div>`)内の「`innerHTML`の値」だけです。
|
114
114
|
|
115
115
|
そしてこの「`innerHTML`の値」の空文字列をLocalStorageに保存してから、再度取り出し、
|
116
116
|
|
@@ -122,7 +122,7 @@
|
|
122
122
|
|
123
123
|
これが、カウントアップされない原因です。そもそもカウントの値が保存されていません。
|
124
124
|
|
125
|
-
実際、以下の書いてみたサンプルでもカウントアップどころか、何も表示されない状態になっています。
|
125
|
+
実際、以下の実際に書いてみたサンプルでもカウントアップどころか、何も表示されない状態になっています。
|
126
126
|
|
127
127
|
|
128
128
|
|
@@ -146,15 +146,15 @@
|
|
146
146
|
|
147
147
|
ただし、LocalStorageにカウントの値が無い場合には、代わりに`0`を代入するようにします。
|
148
148
|
|
149
|
-
このあたりの処理は、「LocalStorageからカウントの値を読み出し、カウントの数値か
|
149
|
+
このあたりの処理は、「LocalStorageからカウントの値を読み出し、カウントの数値か`0`を返す」関数としてひとまとめにしてしまったほうが良いと思います。
|
150
150
|
|
151
151
|
ここでは、これらの処理を`load`関数にまとめることにします。
|
152
152
|
|
153
153
|
|
154
154
|
|
155
|
-
`load`関数でカウントの値を代入し
|
155
|
+
`load`関数で取得したカウントの値を変数`count1`に代入し、それから変数`count1`をカウントアップします。
|
156
|
-
|
156
|
+
|
157
|
-
そ
|
157
|
+
そして、カウントアップした値をLocalStorageに保存して、`innerHTML`の値も更新します。
|
158
158
|
|
159
159
|
この時、`innerHTML`の値をLocalStorageに保存するような処理にしては駄目です。
|
160
160
|
|
@@ -170,7 +170,9 @@
|
|
170
170
|
|
171
171
|
このため、外側と内側とでコードの実行タイミングが異なるようになってしまいます。
|
172
172
|
|
173
|
-
これを混同するとえらく面倒になるうえに、殆どの場合は期待した動作をしてくれなくなるので、
|
173
|
+
これを混同するとえらく面倒になるうえに、殆どの場合は期待した動作をしてくれなくなるので、
|
174
|
+
|
175
|
+
全ての処理は「`window.onload`に設定する関数」の中に書いてしまいましょう。
|
174
176
|
|
175
177
|
|
176
178
|
|