JavaScript 如何唯一标识访问网站的计算机

JavaScript 如何唯一标识访问网站的计算机

无论我们创建任何应用程序或网站,都需要唯一标识访问网站的计算机。唯一标识计算机有很多好处。

例如,您向用户提供一些服务。通过唯一标识计算机,当用户第一次从新设备访问您的网站时,您可以为其提供免费试用服务。当用户再次访问时,您可以要求用户购买高级服务或订阅您的应用程序。

在这里,我们将使用cookies来标识访问网站的计算机。

什么是cookies

cookies允许开发人员在浏览器中存储用户信息。例如,我们可以从服务器向浏览器发送数据并将其存储在浏览器中。因此,每当用户重新访问网站时,它会从cookies中获取数据而不是从服务器获取。因此,cookies可以提高应用程序的性能。

在我们的案例中,当用户第一次访问网站时,我们可以将cookies设置为100年的过期时间。之后,每当用户再次访问网站时,我们检查cookies是否存在,然后可以知道用户已经重新访问了网站。

语法

用户可以按照下面的语法在Web浏览器上设置和获取cookies。

// to set cookies
document.cookie = "isVisited=true";

// to get cookies
let ca = decodeURIComponent(document.cookie).split(';');

在上述语法中,我们将具有键值对的字符串分配给document.cookie,以将cookies设置到浏览器中。要获取cookies,我们可以简单地使用document.cookie,它返回cookies数组。

步骤

步骤1 - 创建一个fetchCookies()函数。

步骤2 - 在fetchCookies()函数内部,使用document.cookie以数组格式获取cookies,并使用decodeURIComponent()方法对cookies进行解码。

步骤3 - 使用for循环遍历数组。

步骤4 - 对于数组的每个元素,移除数组开头的空格。

步骤5 - 使用indexOf()方法检查数组元素是否包含0索引处的键,并使用substring()方法获取键值。

步骤6 - 返回特定键的值。

步骤7 - 创建一个fetchCookies()函数。在fetchCookies()函数中调用getCookie()函数并检查cookies是否存在。

步骤8 - 如果cookie为null,则设置cookies。

步骤9 - 根据所需的cookies是否为null打印消息。

示例

在下面的示例中,每当用户首次访问网站时,我们将”IsValidate”设置为cookie中的”true”值。当用户第二次访问网站时,我们从cookie中获取”IsValidate”,因此我们打印消息”欢迎回来访问网站”。

<html>
<body>
   <h3>Using the <i> Cookies </i> to uniquely identify computers visiting web site in JavaScript</h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById('content');

      // function to get cookies
      function fetchCookies(cname) {
         let key = cname + "=";
         let ca = decodeURIComponent(document.cookie).split(';');
         for (let i = 0; i < ca.length; i++) {
            let part = ca[i];
            while (part.charAt(0) == ' ') {
               part = part.substring(1);
            }
            if (part.indexOf(key) == 0) {
               return part.substring(key.length, part.length);
            }
         }
         return null;
      }

      // set cookies to uniquely identify the computer visiting the website
      function checkCookies() {
         var cookies = fetchCookies("isVisited");
         if (cookies == null) {
            content.innerHTML = "Welcome to the website";
            document.cookie = "isVisited=true";
         } else {
            content.innerHTML = "Welcome back to the website";
         }
      }
      checkCookies();
   </script>
</body>
</html>

示例

在下面的示例中,每当用户第一次访问网站时,我们使用提示框询问他们的姓名,并显示欢迎信息。此外,我们将Cookie设置为100年后过期。

每当用户第二次访问时,我们将显示带有他们姓名的欢迎信息,而无需再次询问他们的姓名。

<html>
<body>
   <h3>Using the <i> Cookies </i> to uniquely identify computers visiting web site in JavaScript</h3>
   <div id = "content"> </div>
   <script>
      let content = document.getElementById('content');

      // function to get cookies
      function fetchCookies(cname) {
         let key = cname + "=";
         let ca = decodeURIComponent(document.cookie).split(';');
         for (let i = 0; i < ca.length; i++) {
            let part = ca[i];
            while (part.charAt(0) == ' ') {
               part = part.substring(1);
            }
            if (part.indexOf(key) == 0) {
               return part.substring(key.length, part.length); 
            }
         }
         return null;
      }

      // set cookies to uniquely identify the computer visiting the website
      function checkCookies() {
         var cookies = fetchCookies("customCookie");
         if (cookies == null) {
            let name = prompt("Enter your name", "Shubham");
            document.cookie = "customCookie=" + name + "; expires=Thu, 23 Oct 2120 12:00:00 UTC; path=/";
            content.innerHTML = "How are you " + name + "?";
         }
         else {
            content.innerHTML = "Hey, " + cookies + " You visited our site again!";
         }
      }
      checkCookies();
   </script>
</body>
</html>

使用JavaScript中的cookies,用户可以学会通过cookies唯一识别访问网站的计算机。然而,cookies有一些限制。如果用户清除了cookies,我们无法唯一识别计算机。此外,我们需要将cookies的过期时间设置为100年。此外,如果用户使用不同的浏览器,我们也无法唯一识别计算机。

克服上述所有问题的最佳解决方案是使用Google Analytics。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程