यह Google Analytics प्रकार की चीज़ नहीं है (हालाँकि मेरी इच्छा है कि यह होता)।

मुझे जो करना है वह है - जितना गूंगा लगता है - एक साइट पर अपनी यात्रा के दौरान उपयोगकर्ता क्लिकों की गणना करें (एक वर्डप्रेस साइट एफवाईआई)। जब वे पाँच क्लिक तक पहुँच जाते हैं, तो एक पॉपअप मोडल दिखाई देगा। यह या तो एक पृष्ठ पर या पूरी साइट पर ५ क्लिक होने चाहिए (अर्थात उनके क्लिकों की गणना करें जब तक कि गिनती ५ तक कई पृष्ठों पर न जाए)

मुझे लगा कि क्लिक की संख्या पर नज़र रखने के लिए मुझे कुकीज़ का उपयोग करने की आवश्यकता होगी, हालांकि, मुझे यकीन नहीं है कि कुकी को लगातार क्लिक पर अपडेट रखने के लिए क्या करना है, भले ही उपयोगकर्ता जाने के लिए एक पेज छोड़ देता है या नहीं दूसरा या एक पृष्ठ पर रहता है।

मैं PHP सत्र चर के बारे में सोच रहा था क्योंकि यह एक वर्डप्रेस साइट है लेकिन मुझे नहीं पता कि यह आवश्यक है या नहीं? मैं केवल क्लिक गिन रहा हूं, कोई विशिष्ट उपयोगकर्ता डेटा संग्रहीत नहीं कर रहा हूं।

यही मैं अब तक जा रहा हूं। वर्तमान में, एक क्लिक के बाद समय केवल 5 तक गिना जाता है, जो आदर्श नहीं है।

function setCookie(cname,cvalue,exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toGMTString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.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 "";
}

function checkCookie() {
    let click = getCookie("click");
    if (click === 5) {
        alert("stop counting: " + click);
    } else {
        $(document).on("click", function () {
            let count = 1;

            while (click < 5) {
                click = count++;
                setCookie("click", click, 30);
                 console.log("click count is: " +click);I
            }
            if (click === 5) {
                alert("5 clicks reached!");
            }

        });
    }
}
checkCookie();
1
S.Marie 21 फरवरी 2019, 22:21

1 उत्तर

सबसे बढ़िया उत्तर

localStorage आप सभी टैब में डेटा संग्रहीत करते हैं, और यह कुकी की तुलना में कहीं अधिक लचीला है। क्लिकों की गणना करने के लिए आप window ऑब्जेक्ट पर सभी क्लिक सुन सकते हैं:

 window.addEventListener("click", () => {
   let count = +localStorage.getItem("clickCount") || 0;
   count += 1;
   localStorage.setItem("clickCount", count);

   if(count >= 5) {
    //...
   }
});
1
Jonas Wilms 21 फरवरी 2019, 19:25