每當我們建立任何應用程式或網站時,我們都需要唯一地識別造訪網站的電腦。唯一標識計算機有很多好處。
例如,您正在向使用者提供一些服務。透過唯一識別計算機,當使用者首次從新設備造訪您的網站時,您可以提供免費試用服務。當用戶再次造訪時,您可以要求用戶購買高級版或訂閱您的應用程式。
在這裡,我們將使用 cookie 來識別造訪網站的電腦。
Cookie 允許開發人員在瀏覽器中儲存使用者資訊。例如,我們可以將資料從伺服器傳送到瀏覽器並儲存在瀏覽器中。因此,每當用戶重新訪問該網站時,它都會從 cookie 而不是從伺服器獲取資料。因此,cookie 可以提高應用程式的效能。
在我們的例子中,當使用者第一次造訪網站時,我們可以將 cookie 設定為 100 年到期。此後,每當使用者再次造訪該網站時,我們都會檢查cookie是否存在,然後我們就可以說使用者重新造訪了該網站。
使用者可以依照下列語法在網頁瀏覽器上設定和取得 cookie。
// to set cookies document.cookie = "isVisited=true"; // to get cookies let ca = decodeURIComponent(document.cookie).split(';');
在上面的語法中,我們將一個帶有鍵值對的字串指派給 document.cookie 以將 cookies 設定到瀏覽器中。要取得 cookie,我們可以簡單地使用 document.cookie,它會傳回 cookie 陣列。
第 1 步 - 建立 fetchCookies() 函數。
第 2 步驟 - 在 fetchCookies() 函數中,使用 document.cookie 取得陣列格式的 cookie,並使用decodeURIComponent() 方法對 cookie 進行解碼。
第 3 步 - 使用 for 迴圈迭代陣列。
步驟 4 - 對於陣列的每個元素,刪除陣列開頭的空格。
第 5 步 - 使用 indexOf() 方法檢查陣列元素是否包含第 0th 索引處的鍵,並使用 substring() 取得鍵值方法。
第 6 步 - 傳回特定鍵的值。
第 7 步 - 建立 fetchCookies() 函數。在 fetchCookies() 函數中,呼叫 getCookie() 函數並檢查 cookie 是否存在。
第 8 步 - 如果 cookie 為空,則設定 cookie。
第9步 - 根據所需的cookie是否為空列印訊息。
在下面的範例中,每當使用者第一次造訪網站時,我們都會在 cookie 中將「isValidate」設定為「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 中的 cookie 來唯一識別造訪網站的電腦。然而,cookie 有一些限制。如果使用者清除cookie,我們就無法唯一地辨識該電腦。另外,我們需要將 cookie 的有效期限設定為 100 年。此外,如果使用者使用不同的瀏覽器,我們無法唯一地識別電腦。
克服上述所有問題的最佳解決方案是使用 Google Analytics。
以上是如何在 JavaScript 中唯一標識存取網站的電腦?的詳細內容。更多資訊請關注PHP中文網其他相關文章!