速報

COMSBIのSaaS版で個人情報漏えい|社内アカウントから複数社の情報を取得

CATEGORY

【JavaScript】初回読み込み(アクセス)時にのみ処理を実行する

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】初回読み込み(アクセス)時にのみ処理を実行する

目次

本記事では、JavaScriptで初回読み込み(アクセス)時にのみ処理を実行する方法をご紹介しています。

初回読み込み時(アクセス)時にのみ処理を実行させる方法は色々あると思いますが、本記事では比較的導入しやすいとWeb Storage を使用した方法を3パターンご紹介しています。

最初はユーザーに視認してもらいたいけれど、ずっと表示しておく必要がないコンテンツ……例えばローディングアニメーションやオーバーレイで表示するキャンペーンバナーといったものに有効かと思います。

では、解説していきます。

スポンサーリンク

Cookieにアクセス履歴を残して判定する方法

Cookieにユーザーが訪問した履歴を残しておき、アクセス時に初回訪問か、訪問済みのユーザーかを判定します。

下記の例では、初回アクセス時にCookieにvisited: trueのキーと値のペアを追加し、アクセス時にCookieを確認することで、訪問状況を判定しています。

function setCookie(key, value){
    document.cookie = key+'='+value+';';
}

function getCookie(key){
    
    const cookies = document.cookie;
    const cookiesAry = cookies.split(';');
    
    for(let i = 0; i < cookiesAry.length; i++){
        let cookie = cookiesAry[i].split('=');
        if( cookie[0] === key){
            return cookie;
        }
    }
}

const keyName= 'visited';
const keyValue= true;
const cookie = getCookie(keyName);

if(typeof cookie === 'undefined' || cookie[1] !== keyValue){
    //Cookieをセットする
    setCookie(keyName, keyValue);

    //ここに初回アクセス時の処理
    console.log("初めての訪問です");

} else {
    //ここに通常アクセス時の処理
    console.log("訪問済みです");

}

sessionStorageにアクセス履歴を残して判定する方法

sessionStorageはセッションが続く間、値を保持しておくことができるWeb Storage APIです。Cookieのようにキーと値のペアで保存することができます。Cookieのように有効期間等の設定はできませんが、APIで削除、もしくはブラウザを閉じたタイミングでデータをクリアしたい場合に有効です。

const keyName = 'visited';
const keyValue = true;

if (!sessionStorage.getItem(keyName)) {
    //sessionStorageにキーと値を追加
    sessionStorage.setItem(keyName, keyValue);

    //ここに初回アクセス時の処理
    console.log("初めての訪問です");

} else {
    //ここに通常アクセス時の処理
    console.log("訪問済みです");

}

スポンサーリンク

localStorageにアクセス履歴を残して判定するく方法

localStorageは有効期限を設けずに永続的に値を保持しておきたい場合に有効なWeb Storage APIです。sessionStorageと同様にキーと値のペアで保存することができます。一度アクセスしてユーザーがlocalStorageのデータを削除するか、APIで削除するまで保持しておきたい場合に有効な方法です。

const keyName = 'visited';
const keyValue = true;

if (!localStorage.getItem(keyName)) {
    //localStorageにキーと値を追加
    localStorage.setItem(keyName, keyValue);

    //ここに初回アクセス時の処理
    console.log("初めての訪問です");

} else {
    //ここに通常アクセス時の処理
    console.log("訪問済みです");

}

最後に

本記事でご紹介した3パターンの方法は、それぞれ用途が異なるものです。基本的にCookieに有効期限を設定しておくことが使いやすいかと思いますが、sessionStorageやlocalStorageの方が直感的で使いやすいので、案件によっては採用しても良いかもしれませんね。

以上、JavaScriptで初回読み込み(アクセス)時にの処理を実行する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

API

ソフトウェアやサービスの機能を、ほかのプログラムから決まった方法で呼び出して使えるようにした窓口。

詳しく見る

Cookie

Webサイトがブラウザに保存させる小さなデータ。ログイン状態の維持や設定の記憶、アクセス解析などに使われる。

詳しく見る