網站首頁 編程語言 正文
?防止點擊量頁面刷新增加的簡單處理方法
?在寫項目的過程中,博主遇到一個需要做文章點擊瀏覽增加點擊量的情況,這里簡單描述一下,在做后臺增加點擊量時,刷新頁面會導致你的請求重發,不停的增加點擊量,這里給大家分享一個處理方法,用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-11-06 解析PyCharm集成GitLab代碼倉的問題_python
- 2022-05-13 Virtualbox?NAT網絡配置方法_VirtualBox
- 2022-11-27 深入了解Linux的文件權限_linux shell
- 2022-04-19 C語言雙指針算法朋友過情人節我過算法_C 語言
- 2022-08-27 C#使用百度Ueditor富文本框實現上傳文件_C#教程
- 2022-03-21 oracle中commit之后進行數據回滾的方法_oracle
- 2023-10-11 lambda Collectors類的靜態工廠方法
- 2023-02-02 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同步修改后的遠程分支