搜尋
首頁web前端css教學將用戶擺脫過多習慣的一種方法

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

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

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

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

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

這是該概念的簡單演示。

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

  • 我們如何堅持用戶重新加載網站的次數?我們需要一個地方來保持用戶重新加載網站的次數(重新彙編),這個地方需要在重新加載之間持續該值 - 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
每周平台新聞:Galaxy Store的Web應用程序,Tappable Stories,CSS Subgrid每周平台新聞:Galaxy Store的Web應用程序,Tappable Stories,CSS SubgridApr 14, 2025 am 11:20 AM

在本週的綜述中:Firefox獲得了類似鎖匠的力量,三星的Galaxy Store開始支持Progressive Web Apps,CSS Subgrid正在Firefox發貨

每周平台新聞:Internet Explorer模式,搜索控制台中的速度報告,限制通知提示每周平台新聞:Internet Explorer模式,搜索控制台中的速度報告,限制通知提示Apr 14, 2025 am 11:15 AM

在本週的綜述中:Internet Explorer進入Edge,Google搜索控制台吹捧新的速度報告,而Firefox給出了Facebook&#039; s Notification

CSS自定義屬性的範圍的功率(和樂趣)CSS自定義屬性的範圍的功率(和樂趣)Apr 14, 2025 am 11:11 AM

您可能至少已經對CSS變量有點熟悉了。如果沒有,這是兩秒鐘的概述:它們真的稱為自定義屬性

我們是程序員我們是程序員Apr 14, 2025 am 11:04 AM

構建網站正在編程。編寫HTML和CSS正在編程。我是程序員,如果您在這裡閱讀CSS-Tricks,那麼您很有可能是您

您如何從網站上刪除未使用的CSS?您如何從網站上刪除未使用的CSS?Apr 14, 2025 am 10:59 AM

在這裡,我想預先知道的是:這是一個很難的問題。如果您降落在這裡,因為您希望指向您可以運行的工具

圖片中的圖片網絡API簡介圖片中的圖片網絡API簡介Apr 14, 2025 am 10:57 AM

圖片中的圖片在2016年發行了Macos Sierra,在Safari瀏覽器中首次出現在網絡上。這使用戶可以彈出

使用Gatsby組織和準備圖像以使圖像模糊效果的方法使用Gatsby組織和準備圖像以使圖像模糊效果的方法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 Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

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

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。