JavaScript - Xóa Cookies

Xin chào các nhà pháp sư JavaScript tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình ngọt ngào vào thế giới của cookies. Không phải loại bánh quy sô-cô-la (dù tôi rất muốn!), mà là những cookies kỹ thuật số giúp trải nghiệm web của chúng ta mượt mà hơn. Chúng ta sẽ học cách xóa những mẩu dữ liệu nhỏ này bằng JavaScript. Vậy, cầm lấy que trộn ảo của bạn, và chúng ta hãy bắt đầu!

JavaScript - Deleting Cookies

Các Cách Xóa Cookies Khác Nhau

Trước khi chúng ta lấn sâu vào chi tiết của việc xóa cookies, hãy hiểu tại sao chúng ta lại muốn làm điều này. Hãy tưởng tượng bạn đang xây dựng một trang web cho một tiệm bánh (giữ nguyên chủ đề bánh quy của chúng ta!). Bạn có thể sử dụng cookies để nhớ sở thích bánh yêu thích của người dùng. Nhưng nếu họ muốn bắt đầu từ đầu hoặc xóa sở thích của mình? Đó là khi việc xóa cookies trở nên hữu ích!

Có nhiều cách để xóa cookies trong JavaScript, và chúng ta sẽ khám phá từng cách. Hãy nghĩ về những phương pháp này như các công thức khác nhau cho cùng một món ăn - chúng đều đạt được cùng một mục tiêu nhưng với các nguyên liệu hơi khác nhau.

Phương Pháp Mô Tả
Sử dụng thuộc tính 'expires' Đặt ngày hết hạn của cookie vào một ngày đã qua
Sử dụng thuộc tính 'max-age' Đặt tuổi tối đa của cookie thành 0 hoặc một giá trị âm
Xóa cookie từ trình duyệt Hướng dẫn trình duyệt xóa cookie

Bây giờ, hãy撸 lên áo và vào code... tôi có nghĩa là, mã!

Xóa Cookies Sử Dụng Thuộc Tính 'expires'

Một cách để xóa cookie là bằng cách đặt ngày hết hạn của nó vào một thời gian trong quá khứ. Đó là như nói với cookie, "Thời gian của bạn đã kết thúc!" Dưới đây là cách chúng ta làm:

function deleteCookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
}

// Sử dụng
deleteCookie('favoriteFlavorPreference');

Hãy phân tích điều này:

  1. Chúng ta tạo một hàm叫做 deleteCookie rằng chấp nhận tên của cookie mà chúng ta muốn xóa.
  2. Trong hàm, chúng ta đặt giá trị của cookie thành một chuỗi trống.
  3. Chúng ta đặt thuộc tính expires vào một ngày đã qua (ngày 1 tháng 1 năm 1970, là epoch Unix).
  4. path=/ đảm bảo rằng chúng ta đang nhắm đến cookie chính xác trên toàn bộ trang web.

Khi bạn gọi deleteCookie('favoriteFlavorPreference'), nó giống như nói với trình duyệt, "Sở thích bánh quy sô-cô-la đó? Đó là lịch sử cổ xưa bây giờ!"

Xóa Cookies Sử Dụng Thuộc Tính 'max-age'

Một cách khác để tạm biệt cookies kỹ thuật số của chúng ta là bằng cách sử dụng thuộc tính max-age. Điều này giống như đặt một计时器 cho thời gian cookie nên ở lại. Nếu chúng ta đặt nó thành 0 hoặc một số âm, nó giống như nói, "Đã đến lúc, cookie!"

function deleteCookieWithMaxAge(name) {
document.cookie = name + '=; max-age=0; path=/;';
}

// Sử dụng
deleteCookieWithMaxAge('shoppingCartItems');

Dưới đây là những gì đang xảy ra:

  1. Chúng ta tạo một hàm deleteCookieWithMaxAge rằng chấp nhận tên của cookie.
  2. Chúng ta đặt giá trị của cookie thành một chuỗi trống.
  3. Chúng ta đặt max-age=0, điều này nói với trình duyệt để ngay lập tức hết hạn cookie.
  4. Lại một lần nữa, path=/ đảm bảo chúng ta đang nhắm đến cookie đúng.

Sử dụng phương pháp này giống như nói với các mục trong giỏ hàng của bạn, "Cảm ơn dịch vụ của bạn, nhưng đã đến lúc dọn sạch!"

Xóa Cookies Nhiệt Thức Từ Trình Duyệt

Đôi khi, bạn có thể muốn cung cấp cho người dùng nhiều quyền kiểm soát hơn đối với sở thích cookie của họ. Trong trường hợp này, bạn có thể cung cấp một nút hoặc giao diện cho phép họ xóa cookies một cách rõ ràng. Dưới đây là một ví dụ về cách bạn có thể thực hiện điều này:

function deleteAllCookies() {
const cookies = document.cookie.split(";");

for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i];
const eqPos = cookie.indexOf("=");
const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;";
}
}

// Sử dụng
<button onclick="deleteAllCookies()">Xóa Tất Cả Cookies</button>

Hãy phân tích quá trình phá hủy cookie này:

  1. Chúng ta định nghĩa một hàm叫做 deleteAllCookies.
  2. Chúng ta chia chuỗi document.cookie thành một mảng các cookie cá nhân.
  3. Chúng ta lặp qua từng cookie:
  • Trích xuất tên của cookie.
  • Đặt ngày hết hạn của từng cookie vào quá khứ (ngày 1 tháng 1 năm 1970).
  1. Chúng ta cung cấp một nút mà khi nhấp vào sẽ kích hoạt hàm này.

Phương pháp này giống như có một nút "Reset Tùy Chọn" trên trang web của tiệm bánh. Nó cho phép người dùng bắt đầu từ đầu, có thể để khám phá những hương vị họ chưa thử trước đây!

Nhớ rằng, mặc dù việc xóa cookies có thể hữu ích, nhưng rất quan trọng là phải tôn trọng quyền riêng tư của người dùng và cung cấp thông tin rõ ràng về cookies bạn đang sử dụng và tại sao. Luôn tuân theo các thực hành tốt nhất và yêu cầu pháp lý về việc sử dụng và xóa cookies.

Tóm lại, việc xóa cookies trong JavaScript giống như dọn dẹp sau một buổi nướng bánh. Nó giúp giữ mọi thứ sạch sẽ và cho phép bắt đầu từ đầu. Dù bạn sử dụng thuộc tính expires, max-age, hay cho người dùng quyền kiểm soát trực tiếp, bạn nay đã có các công cụ để quản lý cookies hiệu quả trong các ứng dụng web của mình.

Vậy, lần sau khi ai đó yêu cầu bạn "xóa cookies", bạn sẽ biết họ không nói về việc giấu bằng chứng của một cuộc tấn công bánh quy vào半夜. Chúc bạn may mắn với mã và hy vọng cookies kỹ thuật số của bạn luôn thú vị như những cookies ăn được!

Credits: Image by storyset