網站首頁 編程語言 正文
?防止點擊量頁面刷新增加的簡單處理方法
?在寫項目的過程中,博主遇到一個需要做文章點擊瀏覽增加點擊量的情況,這里簡單描述一下,在做后臺增加點擊量時,刷新頁面會導致你的請求重發,不停的增加點擊量,這里給大家分享一個處理方法,用cookie來判斷是否第一次進入此網頁。
注意事項:
1.此方法并不嚴謹。因為此方法是設置保留cookie時間,判斷cookie是否存在來做的,所以cookie一旦超過設定時間就會自行銷毀,到時候用戶再點又會增加點擊量
2.此方法可以被瀏覽器清除cookie給弄的形同虛設
3.因為此方法是設置保留cookie時間,判斷cookie是否存在來做的。所以如果時間不到此cookie就會一直緩存在用戶終端的瀏覽器緩存里,希望不要設定的太久,這樣會占用用戶端資源
總結:此方法適合一些要求不是特別苛刻的項目,簡單統計一下點擊量的那種,追根到底這個方法還是弊病太多,比較大型嚴謹的項目建議看看網上別的方法,cookie好像也是有其他方法判斷是否首次進入的
?上代碼:
需要改的地方:
可以看到這里是先isNewVisitor方法獲取cookie,首次進入時沒有的,然后判斷成功首次進入,塞入cookie值,第一個參數cookie名,第二個參數cookie值,第三個參數天數,下面有對應的方法,可以自己看一下就懂了
一.set方法鍵值隊名要和get方法對應
二.如果這個網頁是動態加載什么東西,例如文章內容是動態加載,需要動態給在set、get方法的鍵值隊名,例如:文章類型代碼+id拼接的字符串。這樣才能動態攔截每個不同的文章點擊量重復點擊
$(document).ready(function() {
var newVisitor = isNewVisitor();
if(newVisitor === true) {
// 動畫彈出消息框
// alert('您是新用戶!');
// 標記:已經向該訪客彈出過消息。30天之內不要再彈
setCookie("gznotes-visited", "true", 5);
} else {
console.log("您已不是新用戶了")
}
});
function isNewVisitor() {
// 從cookie讀取“已經向訪客提示過消息”的標志位
var flg = getCookie("gznotes-visited");
if(flg === "") {
return true;
} else {
return false;
}
}
// 寫字段到cookie
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + "; " + expires + ";path=/";
}
// 讀cookie
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while(c.charAt(0) == ' ') c = c.substring(1);
if(c.indexOf(name) == 0) return c.substring(name.length, c.length);
}
return "";
}
?
原文鏈接:https://blog.csdn.net/qq_42315540/article/details/107903562
相關推薦
- 2022-07-10 Executor 線程池技術詳解
- 2022-05-12 Android10 分享微信提示獲取資源失敗
- 2022-07-01 Python判斷Nan值的五種方式小結_python
- 2022-04-01 SQL?Server?的T-SQL高級查詢詳解_MsSql
- 2022-08-04 詳解C++中賦值,關系,函數調用運算符重載的實現_C 語言
- 2021-11-09 C++11?thread多線程編程創建方式_C 語言
- 2022-03-30 帶你了解Python妙開根號的三種方式_python
- 2022-04-20 C語言特殊符號的補充理解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支