Kiểm tra kết nối internet bằng Javascript

Như bạn thấy trong Facebook và Gmail có chức năng thông báo tình trạng Internet của bạn và thông báo cho người dùng biết, chức năng này khá hay vì bạn có thể lưu trữ những thông tin quan trọng trên Client và lúc có Internet sẽ tiếp tục xử lý.

Nếu bạn đang cần làm một chức năng như vậy thì xem bài này nhé, mình sẽ hướng dẫn cách kiểm tra kết nối internet bằng Javascript.

Mình không biết Gmail và Facebook họ code như thế nào nhưng mình biết một cách là sử dụng Ajax request tới một file hình (hình càng nhỏ càng tốt, có thể chọn hình 1px x 1px) và dựa vào header request để biết được internet có kết nối hay không. Với cách này thì tấm hình bạn nên đặt tại server của bạn nhé.

1. Kiểm tra kết nối Internet bằng Javascript

Để kiểm tra kết nối internet bạn sử dụng hàm Javascript sau:

function doesConnectionExist() {
    var xhr = new XMLHttpRequest();
    var file = "https://freetuts.net/public/logo.png";
    var randomNum = Math.round(Math.random() * 10000);

    xhr.open('HEAD', file + "?rand=" + randomNum, false);

    try {
        xhr.send();

        if (xhr.status >= 200 && xhr.status < 304) {
            return true;
        } else {
            return false;
        }
    } catch (e) {
        return false;
    }
}

Hàm này sẽ trả về TRUE nếu có kết nối và FALSE nếu không có kết nối. 

Lưu ý là bạn phải chỉnh lại đường dẫn tới file hình thay bằng đường dẫn trên domain của bạn nhé.

Câu hỏi đặt ra là làm thế nào để tự động chạy hàm này? Chúng ta sẽ sử dụng hàm setTimeout() để chạy hàm này liên tục trong một khoảng thời gian nào đó (ví dụ 10 giây). 

Trường hợp bạn muốn nếu không kết nối thì xử lý lưu trữ thao tác của người dùng trên máy tính client (Cookie hoặc localStore) thì dựa vào hàm này để check, nếu TRUE thì thực hiện.

function check()
{
    if (!doesConnectionExist()){
        // Code lưu trữ thông tin 
        // Code thông báo người dùng 
        // ..
    }
}

setTimeout(function(){
    check();
}, 10000);

2. Lời kết

Cách trên rất đơn giản nhưng mình thấy khá hiệu quả. Tuy nhiên hiện có một thư viện Javascript chuyên dùng để kiểm tra tình trang Internet đó là thư viện Offline.js, bạn tải về để tham khảo nhé vì nó được viết chuyên nghiệp hơn rất nhiều.

Học Javascript qua các bài tập thực hành

Bạn muốn học và nắm bắt Javascript một cách nhanh nhất thì khoá học Javascript từ đầu sẽ giúp bạn, đây là khóa học được biên soạn dành cho người mới học, và mọi thứ sẽ thông qua thực hành, bạn sẽ dễ dàng nắm bắt và nhớ lâu hơn. Bạn sẽ được học xử kỹ thuật lý các hiệu ứng, thao tác với DOM, BOM và nhiều kỹ thuật khác.

Nguồn: freetuts.net

KHÓA HỌC ĐANG GIẢM GIÁ

FEDU - 25 – Thiết kế hiệu ứng bằng Javascript và illustrator

(Giảng viên: NGUYỄN ĐỨC VIỆT )

XEM
FEDU - 22 – Học tất tần tật về Javascript từ đầu

(Giảng viên: Nguyễn Đức Việt)

XEM
UNICA - Học lập trình JAVASCRIPT

(Giảng viên: )

XEM