検索
ホームページウェブフロントエンドCSSチュートリアルリロードしすぎるという習慣からユーザーを分解する1つの方法

リロードしすぎるという習慣からユーザーを分解する1つの方法

ページのリロードは何かです。それが反応しないと思うとき、または新しいコンテンツが利用可能であると信じるとき、私たちは時々私たちはページを更新します。時々、私たちはDangのサイトに怒って、Rage-Refreshが私たちが不満を抱いていることを知らせます。

ユーザーがいつページをリフレッシュするかを知るのはいいことではありませんか?それだけでなく、何回?そのデータは、特定の数のリロード後に何らかの動作をトリガーするのに役立ちます。

スポーツサイトは良い例です。進行中のゲームのスコアをチェックしたいが、スコアがライブアップデートされていない場合は、束をリフレッシュしていることに気付くかもしれません。

私たちの目標は、ユーザーをその習慣から分割することです。リアルタイムスコアの更新のおかげで、ページリフレッシュカウントパワーを使用して、リフレッシュが不要であることを人々に知らせます。そして、彼らが3回以上リロードする場合は?私たちは彼らのセッションから追い出されます。それはそれらを示します。

その概念の簡単なデモです。

一緒に再作成しましょう。しかし、私たちが行く前に、コーディングを開始する前に答える必要がある質問はほとんどありません。

  • ユーザーがサイトをリロードした回数をどのように維持できますか?ユーザーがサイトをリロードした回数(reloadcount)を維持する場所が必要です。この場所は、リロード間でその価値を持続する必要があります。
  • ユーザーがサイトをリロードしたか、数時間後に戻ってきたかどうかをどのように検出しますか? ReloadCountをLocalStorageに保存すると、リロード間の値が維持されますが、プログラムで削除するか、ブラウザストレージをクリアするまでその値を保持します。つまり、数時間後に戻ってきた場合、サイトはまだ最後のreloadCountを覚えており、警告なしに最初の更新後にログアウトを実行する可能性があることを意味します。私たちはそれを避け、ユーザーがしばらく後に戻ってくるたびにユーザーが2回サイトをリロードできるようにしたいと考えています。その最後の文は、質問に対する答えを保持しています。ユーザーがサイトを離れた時間を保存する必要があります。その後、サイトが再度ロードされたときに、それが起こったときにチェックする必要があります。その期間が十分に長くなかった場合、リロードカウントロジックをアクティブにします。
  • ユーザーがいつサイトを離れるかをどのようにして知ることができますか?その時間を保存するには、[前のウィンドウイベントを使用し、その価値をLocalStorageに保存します。

さて、答えができたので、コードに飛び込みましょう。

ステップ1:最後のリロード時間を保存する必要があります

アンロード前のウィンドウイベントを使用して、最後のリロードの時間を保存します。 (1)イベントを聴き、適切な方法を発射するイベントリスナーと(2)前のUnloadhandlerメソッド。

まず、WindowオブジェクトのAddEventListenerメソッドを使用してイベントリスナーを設定するInitialIzerEloAdCountという関数を作成しましょう。

 function initializeLoAdcount(){
  window.addeventlistener( "beforeunload"、beforeunloadhandler)
}

次に、サイトを離れる前に起動される2番目の方法を作成します。この方法は、LocalStorageでリフレッシュが発生する時間を節約します。

 unloadhandler()beffore beforefunce
  localStorage.setItem( "lastunloadat"、math.floor(date.now() / 1000)))
  window.removeeventlistener( "beforeunload"、beforeunloadhandler);
}

ステップ2:リロードカウントを処理して保存する方法が必要です

サイトが最後に閉鎖された時間があるので、サイトのリロードされた回数を検出およびカウントする責任のあるロジックを進めて実装できます。リロッドカウントを保持し、ユーザーがサイトをリロードした回数を教えてくれる変数が必要です。

 reloadcount = nullとします

次に、initializereloadcount関数では、2つのことを行う必要があります。

  1. LocalStorageに既にリロードカウント値が保存されているかどうかを確認してください。もしそうなら、その価値を取得してReloadCountに保存してください。値が存在しない場合、ユーザーが初めてサイトをロードしたことを意味します(または少なくともリロードしませんでした)。その場合、reloadCountをゼロに設定し、その価値をLocalStorageに保存します。
  2. サイトがリロードされているかどうかを検出するか、ユーザーが長期にわたってサイトに戻ってきたかどうかを検出します。これは、LastUnloadat値が必要な場所です。サイトが実際にリロードされているかどうかを検出するには、サイトがロードされた時間(現在の時刻)とLastUnloadat値を比較する必要があります。たとえば、5秒(これは完全にarbitrary意的です)でこれらの2つが発生した場合、ユーザーがサイトをリロードしたことを意味し、リロードカウントロジックを実行する必要があります。これら2つのイベントの間の期間が長い場合、リロードカウント値をリセットします。

それで、CheckReloadという新しい関数を作成し、そのロジックをそこに保持しましょう。

関数checkreload(){
  if(localstorage.getitem( "reloadcount")){
    reloadcount = parseint(localstorage.getitem( "reloadcount"))
  } それ以外 {
    reloadcount = 0
    localstorage.setItem( "reloadcount"、reloadcount)
  }
  もし (
    math.floor(date.now() / 1000)-localstorage.getitem( "lastunloadat")<p>このステップで必要な最後の関数は、ユーザーがサイトをリロードしたことを確認したときに何が起こるかを担当する方法です。その関数をOnreloAddetectedと呼び、その内部では、reloadCountの値を増やします。ユーザーが3回目のサイトを更新した場合、爆弾をドロップしてログアウトロジックを呼び出します。</p><pre rel="JavaScript"> function onreloAddeTected(){
  reloadcount = reloadcount 1
  localstorage.setItem( "reloadcount"、reloadcount)
  if(reloadcount === 3){
    logout()
  }
}

ステップ3:「親愛なるユーザー、なぜ聞かなかったのですか?」

このステップでは、ユーザーがサイトをリロードして、それを停止するという明確な警告にもかかわらず、3限度のしきい値に違反するポイントまでサイトをリロードするときのロジックを実装します。

それが起こったら、APIを呼び出してユーザーをログアウトし、リロードカウントロジックに関連するすべてのプロパティをクリーンアップします。これにより、ユーザーが戻ってきて、リロードをきれいに説明することができます。また、ログイン画面のように、ユーザーをどこかに便利な場所にリダイレクトすることもできます。 (しかし、代わりにここに送るのは面白くないでしょうか?)

 function logout(params){
  // logout API呼び出し
  resetreloadcount()
}

function resetreloadcount(){
  window.removeeventlistener( "beforeunload"、beforeunloadhandler)
  localstorage.removeitem( "lastunloadat")
  localStorage.RemoveItem( "reloadcount");
}

ボーナス:それを再利用しましょう!

ロジックが実装されたので、この例に基づいて、そのロジックをVUEサイトにどのように移動できるかを見てみましょう。

まず、すべての変数をコンポーネントのデータに移動する必要があります。このデータは、すべてのリアクティブな小道具が住んでいます。

デフォルトのエクスポート{
  データ() {
    戻る {
      reloadcount:0、
      警告マッセージ:[...]
    }
  }、

次に、すべての機能をメソッドに移動します。

 // ...
  方法:{
    beforeunloadhandler(){...}、
    checkreload(){...}、
    logout(){...}、
    onreloAddeTected(){...}、
    ResetreloAdCount(){...}、
    initializeLoAdCount(){...}
  }
// ...

VUEとその反応性システムを使用しているため、すべての直接DOM操作(document.getElementByID( "APP")。NENNEHTMLなど)をドロップし、警告Messagesデータプロパティに依存できます。適切な警告メッセージを表示するには、再確認されるたびに再計算する計算されたプロパティを追加する必要があります。

計算:{
  警告message(){
    this.warningmessages [this.reloadcount];
  }
}、

次に、コンポーネントのテンプレートで、計算されたプロパティに直接アクセスできます。

 
  <div>
    <p> {{warningMessage}} </p>
  </div>
テンプレート>

最後に行う必要があることは、リロード予防ロジックをアクティブにする適切な場所を見つけることです。 Vueには、まさに必要なものであるコンポーネントライフサイクルフック、特に作成されたフックが付属しています。それを落としましょう。

 // ...
  created(){
    this.InitializerEloAdcount();
  }、
// ...

ニース。

まとめます

そして、それは、ページが更新された回数をチェックしてカウントするロジックです。あなたが乗車を楽しんだことを願っています、そしてあなたはこのソリューションが役に立つか、少なくとももっと良いことをするために刺激的であると思うことを願っています。 ?

以上がリロードしすぎるという習慣からユーザーを分解する1つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
毎週のプラットフォームニュース:Galaxy Store、Tappable Stories、CSS SubgridのWebアプリ毎週のプラットフォームニュース:Galaxy Store、Tappable Stories、CSS SubgridのWebアプリApr 14, 2025 am 11:20 AM

今週のラウンドアップ:Firefoxは錠前屋のような力を獲得し、Samsung&#039; s Galaxy StoreがプログレッシブWebアプリをサポートし始め、CSS SubgridはFirefoxで出荷しています

毎週のプラットフォームニュース:インターネットエクスプローラーモード、検索コンソールの速度レポート、通知プロンプトの制限毎週のプラットフォームニュース:インターネットエクスプローラーモード、検索コンソールの速度レポート、通知プロンプトの制限Apr 14, 2025 am 11:15 AM

今週のラウンドアップ:Internet ExplorerがEdgeに進み、Google Search Consoleが新しい速度レポートを宣伝し、FirefoxがFacebookの通知を提供します

CSSカスタムプロパティを使用したスコープのパワー(および楽しい)CSSカスタムプロパティを使用したスコープのパワー(および楽しい)Apr 14, 2025 am 11:11 AM

おそらく、CSS変数に少なくとも少し精通しているでしょう。そうでない場合は、ここに2秒の概要があります:それらは本当にカスタムプロパティと呼ばれます、あなたは設定します

私たちはプログラマーです私たちはプログラマーですApr 14, 2025 am 11:04 AM

建物のウェブサイトはプログラミングです。 HTMLとCSSの作成はプログラミングです。私はプログラマーです。ここでCSS-Tricksを読んでいる場合、あなたは&#039;

サイトから未使用のCSSをどのように削除しますか?サイトから未使用のCSSをどのように削除しますか?Apr 14, 2025 am 10:59 AM

ここに&#039;私が前もって知るのが好きなこと:これは難しい問題です。あなたがここに上陸した場合、あなたはあなたが伝えることができるツールを指し示すことを望んでいるので、あなたが&#039;

ピクチャーインピクチャーWeb APIの紹介ピクチャーインピクチャーWeb APIの紹介Apr 14, 2025 am 10:57 AM

Picture-in-Pictureは、2016年にMacos SierraをリリースしたSafariブラウザでWebに初めて登場しました。ユーザーがポップできるようになりました。

ギャツビーを使用してぼやけた効果のために画像を整理して準備する方法ギャツビーを使用してぼやけた効果のために画像を整理して準備する方法Apr 14, 2025 am 10:56 AM

Gatsbyは、画像の処理と処理の素晴らしい仕事をしています。たとえば、手動で画像の最適化で時間を節約するのに役立ちます

ああ、パディングの割合は親要素の幅に基づいていますああ、パディングの割合は親要素の幅に基づいていますApr 14, 2025 am 10:55 AM

私は今日、私の頭の中で完全に間違っていたことをパーセンテージベース(%)のパディングについて学びました!パディングの割合はに基づいているといつも思っていました

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境