JavaScriptでページを更新させる方法とは【メンターが回答】

「JavaScriptでページを更新(F5)させる方法とは。」という質問にTechAcademyの現役エンジニアが解決方法を回答しています。ぜひ理解しておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

※TechAcademyに実際に寄せられた質問に現役エンジニアのメンターが回答しました。

 

田島悠介

質問に対して現役のエンジニアが回答していくシリーズだね!

大石ゆかり

今回はどういう質問でしょうか?

田島悠介

JavaScriptでページを更新させる方法だね!実際に回答してもらった内容を紹介するね!

大石ゆかり

お願いします!

質問

対象ページにアクセスがあったら、「1度」だけ更新(リロード)させるような作りを実装させたいです。

調べて自分なりに作ったところ下記のコードになりましたが、更新され続けてしまいます。

「1度」だけ更新させるにはどう書けば良いのでしょうか?

 

該当のソースコード

<script>
  window.onload = function() {
    console.log('onload 2');
    setTimeout("myfunc()",0);
  }
  function myfunc() {
    window.location.reload(true);
  }
</script>

 

[PR] JavaScript・jQueryで挫折しない学習方法を動画で公開中

メンターからの回答

リロード済みの時はリロード処理を実行しないようにしないと、永遠とループしてしまうので、それがうまく行かない原因です。

<script>
  window.onload = function() {
    console.log('onload');
    setTimeout(myfunc,0);
  }

  function myfunc() {
    var isReloaded = false; //リロード済みかどうかの確認フラグ用変数

    //リロード済みでなければリロードを実行
    if (isReloaded !== false) { 
      window.location.reload(true);
      isReloaded = true; //リロード後にリロード履歴フラグをtrueにセット
    }
  }
</script>

以上、JavaScriptでページを更新させる方法について解説しました。

TechAcademyでは、現役JavaScriptエンジニアのメンターが質問にすぐ回答します。

 

回答してくれたメンター

mentor-takeda

関数型プログラミング言語(HaskellやLispなど)を使用した数値計算システム開発業務に長年従事。

 

田島悠介

JavaScriptでページを更新させる方法について解説したよ。

大石ゆかり

ページの更新がずっと続くって何か怖いですね。

田島悠介

そうそう。迷惑行為にならないようにしっかりチェックしたいね。

大石ゆかり

わかりました。ありがとうございます!

他にもJavaScript内でdocument.writeを使わずにHTMLを書く方法についてメンターが回答しています。

TechAcademyではJavaScriptを使ってWebサービスを公開できるオンラインブートキャンプ フロントエンドコース(JavaScript・jQuery講座)を開催しています。プログラミングの初心者でも受講可能です。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。

:)