ブログ100記事超えたので心機一転でブログを更新していきます。ってことで今回はJavaScriptでのリロードボタンについて書いてみます。
ボタンは?
<a>タグでも<input>タグでも<button>タグ、<span>タグなどでも可です。今回は<input type=”button”>でボタンを作ってみます。
[HTML]
<p><input type="button" id="reload"></p>
HTMLでボタンの準備は完了したので今度はJavaScriptでリロード機能を実装していきます。
リロードボタンを作ってみる
リロード自体の機能は以下のようにします。
[JavaScript]
window.location.reload();
リロード自体はこれでいいのですが、『ボタンをクリック』というイベントがないとリロードが出来ません。2つのやり方を見てみます。
addEventListenerでクリックイベント
まずはaddEventListenerを使ってクリックイベントしたときに関数でリロードをするというやり方から見ています。
[JavaScript]
var reload =document.getElementById('reload');
reload.addEventListener('click',function(){
window.location.reload();
});
id=”reload”を変数reloadに代入したのち、id=”reload”をクリックした時にfunctionの中身が呼び出されるという流れです。
onclickで関数を呼び出す
もう一つはHTMLにonclick属性をつける手順です。
[HTML]
<p><input type="button" onclick="window.location.reload();"></p>
HTML内でJavaScriptを呼び出しています。これだけで済むのでJavaScript自体は短くできます。※AMPではこのままだとエラーになるのでご注意ください。
スーパーリロードは?
普通のリロードだとキャッシュが残ってしまうので、場合によってはうまくCSSなどが反映されない可能性があります。キャッシュについて詳しくはこちらをご覧ください。
方法はとても簡単です。
window.location.reload(true);
- ():通常のリロード
- (true):スーパーリロード
とはいえ、ブラウザゲームぐらいでしかリロードボタンの必要性は思い浮かびませんが…
ましてやスーパーリロードなんて、本来のユーザーにしたらキャッシュの有効化によってページ表示スピードが上がるものを自ら重くするわけなので使いどころは慎重に見極めましょう。
リロードについてと、クリックイベントについて触れてきました。クリックイベントはJavaScriptでよく使うものなのでしっかりマスターしておきましょう。