目錄
步驟1:我們必須存儲最後一次重新加載時間
步驟2:我們需要一種處理和存儲重新加載計數的方法
步驟3:“親愛的用戶,為什麼您不聽?!”
獎金:讓我們重新付款!
總結
首頁 web前端 css教學 將用戶擺脫過多習慣的一種方法

將用戶擺脫過多習慣的一種方法

Apr 13, 2025 am 11:25 AM

將用戶擺脫過多習慣的一種方法

頁面重新加載是一回事。有時,當我們認為它沒有反應或認為可用的新內容時,我們會刷新頁面。有時,我們只是在丹格網站和憤怒的狂歡中生氣,讓它知道我們不高興。

知道用戶何時刷新頁面會不會很高興嗎?不僅如此,還有多少次?這些數據可以幫助我們觸發一定數量的重新加載後觸發某種行為。

體育網站就是一個很好的例子。如果我想檢查正在進行的遊戲的分數,但分數沒有實時更新,那麼我可能會發現自己會刷新一堆。

我們的目標是將用戶擺脫這種習慣。由於實時得分更新,我們將使用我們的頁面刷新計數功能,讓人們知道刷新是不必要的。如果他們重新加載超過三次?我們將踢出他們的會議。那會向他們展示。

這是該概念的簡單演示。

讓我們一起重新創建它。但是在我們開始之前,在開始編碼之前,我們需要回答一些問題:

  • 我們如何堅持用戶重新加載網站的次數?我們需要一個地方來保持用戶重新加載網站的次數(重新彙編),這個地方需要在重新加載之間持續該值 - LocalStorage聽起來像是一個很好的解決方案。
  • 我們如何檢測用戶是重新加載網站還是在幾個小時後又回來?如果我們將重新充電量存儲在LocalStorage中,它將持續重新加載之間的值,但是它將保留該值,直到我們以編程方式刪除或清除瀏覽器存儲為止。這意味著,如果我們在幾個小時後回來,該網站仍然會記住上次重新彙編,並且可能會在第一次刷新後進行註銷而無需警告。我們希望避免這種情況,並允許用戶每次用戶在一段時間後返回兩次。最後一句話是問題的答案。我們需要存儲用戶離開網站的時間,然後在網站再次加載時檢查何時發生的時間。如果那個時間段不夠長,我們會激活重新加載計數邏輯。
  • 我們怎麼知道用戶何時離開網站?要存儲這段時間,我們使用theNolload窗口事件並將該值存儲在LocalStorage中。

好的,現在我們有了答案,讓我們深入了解代碼。

步驟1:我們必須存儲最後一次重新加載時間

我們將使用ununload窗口事件存儲上次重新加載的時間。我們需要兩件事:(1)事件偵聽器,該偵聽器將收聽事件並觸發適當的方法,以及(2)我們的nunloadhandler方法。

首先,讓我們創建一個稱為initializerEloadCount的函數,該函數將使用窗口對像上的AddeventListener方法設置我們的事件偵聽器。

函數oniroctializerEeloAdcount(){
  window.AddeventListener(“ theNunload”,totunloadHandler)
}
登入後複製

然後,我們創建第二種方法,該方法將在離開網站之前被觸發。此方法將節省刷新在localstorage中發生的時間。

函數theunloadhandler(){
  localstorage.setItem(“ lastunloadat”,Math.floor(date.now() / 1000))
  window.removeEventListener(“ toferunload”,theunloadHandler);
}
登入後複製

步驟2:我們需要一種處理和存儲重新加載計數的方法

既然我們有時間上次關閉,我們可以繼續並實施負責檢測和計算網站重新加載多少次的邏輯。我們需要一個變量來保留我們的重新負載,並告訴我們用戶重新加載網站的次數。

讓ReloadCount = null
登入後複製

然後,在我們的InitializerEeloAdcount功能中,我們需要做兩件事:

  1. 檢查我們是否已經在LocalStorage中存儲了一個重新彙編值,如果是的,請獲取該值並將其保存在我們的重新彙編中。如果值不存在,則意味著用戶首次加載了站點(或者至少沒有重新加載它)。在這種情況下,我們將重新匯總設置為零,並將該值保存到LocalStorage。
  2. 檢測是否重新加載站點,或者在更長的時間後返回站點。這是我們需要lastunloadat值的地方。要檢測該站點是否實際重新加載,我們需要比較站點加載(當前時間)的時間與lastunloadat值。如果這兩個發生在五秒鐘內(完全是任意的),則意味著用戶重新加載了站點,我們應該運行重新加載量邏輯。如果這兩個事件之間的時間段更長,我們將重置重新彙編值。

這樣,讓我們​​創建一個稱為CheckReload的新功能,並將該邏輯保留在此處。

功能CheckReload(){
  if(localstorage.getItem(“ ReloAdcount”)){
    reloadcount = parseint(localstorage.getItem(“ ReloAdcount”))
  } 別的 {
    重新充電= 0
    localstorage.setItem(“ ReloadCount”,ReloadCount)
  }
  如果 (
    Math.floor(date.now() / 1000)-localstorage.getItem(“ lastunloadat”)<p>在此步驟中,我們需要的最後一個功能是負責當我們確認用戶重新加載網站時發生的方法。我們將該功能稱為onReLoDeTed,在其中,我們會增加重新彙編的值。如果用戶第三次刷新站點,我們將炸彈撥打並撥打我們的註銷邏輯。</p><pre rel="JavaScript">函數onReloAddetected(){
  ReloadCount = ReloAdcount 1
  localstorage.setItem(“ ReloadCount”,ReloadCount)
  if(reloAdcount === 3){
    logout()
  }
}
登入後複製

步驟3:“親愛的用戶,為什麼您不聽?!”

在此步驟中,儘管我們明確警告了停止這樣做,但我們將用戶重新加載站點重新加載到違反三個限制閾值的地步時實現了邏輯。

發生這種情況時,我們調用我們的API將用戶登錄,然後清理與重新加載計數邏輯相關的所有屬性。這將使用戶能夠返回並擁有重新加載的清潔帳戶。我們還可以將用戶重定向到某個地方,例如登錄屏幕。 (但是將它們發送到這裡不是很有趣嗎?)

函數註銷(params){
  //註銷API調用
  ResetreloAdcount()
}

函數ResetreloAdcount(){
  window.removeeventlistener(“ toferunload”,toferunloadHandler)
  localstorage.removeitem(“ lastunloadat”)
  localstorage.removeitem(“ ReloAdcount”);
}
登入後複製

獎金:讓我們重新付款!

現在,我們已經實現了邏輯,讓我們看看如何基於此示例將該邏輯移至VUE網站:

首先,我們需要將所有變量移動到組件的數據中,這是所有反應性道具的壽命。

導出默認{
  數據() {
    返回 {
      重新載體:0,
      警告:[...]
    }
  },,
登入後複製

然後,我們將所有功能移至方法。

 // ...
  方法: {
    totunloadhandler(){...},
    checkReload(){...},
    logout(){...},
    OnReloAddetected(){...},
    resetreloadcount(){...},
    ritionizerEeloAdcount(){...}
  }
// ...
登入後複製

由於我們使用VUE及其反應性系統,因此我們可以刪除所有直接的DOM操作(例如document.getElementById(“ app”)。innerHTML),並依賴於我們的警告信息數據屬性。為了顯示正確的警告消息,我們需要添加一個計算的屬性,該屬性每次更改我們的重新彙編時都會重新計算,以便我們可以從警告信息中返回字符串。

計算:{
  警告(){
    返回this.warningmessages [this.reloadcount];
  }
},,
登入後複製

然後,我們可以直接在組件模板中訪問計算屬性。

 
  <div>
    <p> {{warningMessage}} </p>
  </div>
登入後複製

我們需要做的最後一件事是找到一個適當的地方激活預防邏輯。 VUE帶有組件生命週鉤,這些鉤子正是我們需要的,特別是創建的鉤子。讓我們放入它。

 // ...
  創建(){
    this.InitializerEloAdcount();
  },,
// ...
登入後複製

好的。

總結

正是這樣,檢查併計算一個頁面刷新了多少次的邏輯。希望您喜歡這次旅行,您會發現這種解決方案有用,或者至少鼓舞人心做得更好。 ?

以上是將用戶擺脫過多習慣的一種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1658
14
CakePHP 教程
1415
52
Laravel 教程
1309
25
PHP教程
1257
29
C# 教程
1231
24
Google字體可變字體 Google字體可變字體 Apr 09, 2025 am 10:42 AM

我看到Google字體推出了新設計(Tweet)。與上一次大型重新設計相比,這感覺更加迭代。我幾乎無法分辨出區別

如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 如何使用HTML,CSS和JavaScript創建動畫倒計時計時器 Apr 11, 2025 am 11:29 AM

您是否曾經在項目上需要一個倒計時計時器?對於這樣的東西,可以自然訪問插件,但實際上更多

HTML數據屬性指南 HTML數據屬性指南 Apr 11, 2025 am 11:50 AM

您想了解的有關HTML,CSS和JavaScript中數據屬性的所有信息。

使Sass更快的概念證明 使Sass更快的概念證明 Apr 16, 2025 am 10:38 AM

在一個新項目開始時,Sass彙編發生在眼睛的眨眼中。感覺很棒,尤其是當它與browsersync配對時,它重新加載

我們如何創建一個在SVG中生成格子呢模式的靜態站點 我們如何創建一個在SVG中生成格子呢模式的靜態站點 Apr 09, 2025 am 11:29 AM

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tar​​tanify.com上,我們收集了5,000多個格子呢

如何在WordPress主題中構建VUE組件 如何在WordPress主題中構建VUE組件 Apr 11, 2025 am 11:03 AM

內聯式模板指令使我們能夠將豐富的VUE組件構建為對現有WordPress標記的逐步增強。

php是A-OK用於模板 php是A-OK用於模板 Apr 11, 2025 am 11:04 AM

PHP模板通常會因促進Subpar代碼而變得不良說唱,但這並不是這樣的情況。讓我們看一下PHP項目如何執行基本的

編程SASS創建可訪問的顏色組合 編程SASS創建可訪問的顏色組合 Apr 09, 2025 am 11:30 AM

我們一直在尋求使網絡更容易訪問。顏色對比只是數學,因此Sass可以幫助涵蓋設計師可能錯過的邊緣案例。

See all articles