Gỡ lỗi dịch vụ nền

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

Mục Background services (Dịch vụ nền) của Chrome DevTools là một tập hợp các công cụ cho API JavaScript, cho phép trang web của bạn gửi và nhận thông tin cập nhật ngay cả khi người dùng không mở trang web của bạn. Về mặt chức năng, dịch vụ nền tương tự như quy trình nền.

Mục Background services (Dịch vụ nền) cho phép bạn gỡ lỗi các dịch vụ nền sau:

Chrome DevTools có thể ghi lại các sự kiện tìm nạp, đồng bộ hoá và thông báo trong 3 ngày, ngay cả khi bạn không mở DevTools. Điều này có thể giúp bạn đảm bảo rằng các sự kiện đang được gửi và nhận như dự kiến.

Ngoài các sự kiện dịch vụ nền, DevTools có thể:

Tìm nạp ở chế độ nền

Background Fetch API (API Tìm nạp ở chế độ nền) cho phép trình chạy dịch vụ tải các tài nguyên lớn xuống một cách đáng tin cậy, chẳng hạn như phim hoặc podcast) dưới dạng dịch vụ nền. Cách ghi lại các sự kiện tìm nạp ở chế độ nền trong 3 ngày, ngay cả khi bạn không mở DevTools:

  1. Mở DevTools trên một trang sử dụng Background Fetch API.
  2. Chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Background fetch (Tìm nạp ở chế độ nền) rồi nhấp vào Ghi lại. Record (Ghi).

    Thẻ Tìm nạp ở chế độ nền.

  3. Trên trang của bạn, hãy kích hoạt một số hoạt động tìm nạp ở chế độ nền. DevTools ghi lại các sự kiện vào bảng.

    Nhật ký các sự kiện trong thẻ Tìm nạp trong nền.

  4. Nhấp vào một sự kiện để xem thông tin chi tiết của sự kiện đó trong không gian bên dưới bảng.

  5. Bạn có thể đóng DevTools và để quá trình ghi chạy trong tối đa 3 ngày. Để dừng ghi, hãy nhấp vào Dừng. Stop (Dừng).

Đồng bộ hoá ở chế độ nền

Background Sync API (API Đồng bộ hoá ở chế độ nền) cho phép trình chạy dịch vụ ngoại tuyến gửi dữ liệu đến máy chủ sau khi thiết lập lại kết nối Internet đáng tin cậy. Cách ghi lại các sự kiện đồng bộ hoá ở chế độ nền trong 3 ngày, ngay cả khi bạn không mở DevTools:

  1. Mở DevTools, chẳng hạn như trên trang minh hoạ này.
  2. Chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Background sync (Đồng bộ hoá ở chế độ nền) rồi nhấp vào Ghi lại. Record (Ghi).

    Thẻ Đồng bộ hoá ở chế độ nền.

  3. Trên trang minh hoạ, hãy nhấp vào Register background sync (Đăng ký đồng bộ hoá ở chế độ nền) để đăng ký trình chạy dịch vụ tương ứng và nhấp vào Allow (Cho phép) khi được nhắc.

    Đăng ký trình chạy dịch vụ là một hoạt động đồng bộ hoá ở chế độ nền. DevTools ghi lại các sự kiện vào bảng.

    Nhật ký các sự kiện trong thẻ Đồng bộ hoá trong nền.

  4. Nhấp vào một sự kiện để xem thông tin chi tiết của sự kiện đó trong không gian bên dưới bảng.

  5. Bạn có thể đóng DevTools và để quá trình ghi chạy trong tối đa 3 ngày. Để dừng ghi, hãy nhấp vào Dừng. Stop (Dừng).

(Thử nghiệm) Giảm thiểu theo dõi tỷ lệ thoát

Thử nghiệm giảm thiểu hoạt động theo dõi tỷ lệ thoát trong Chrome cho phép bạn xác định và xoá trạng thái của các trang web có vẻ như đang thực hiện hoạt động theo dõi trên nhiều trang web bằng kỹ thuật theo dõi tỷ lệ thoát. Bạn có thể buộc giảm thiểu hoạt động theo dõi theo cách thủ công và xem danh sách các trang web có trạng thái đã bị xoá.

Cách buộc giảm thiểu hoạt động theo dõi:

  1. Chặn cookie của bên thứ ba trong Chrome. Chuyển đến và bật Trình đơn có biểu tượng ba dấu chấm. > Settings (Cài đặt) > Bảo mật. Privacy and security (Quyền riêng tư và bảo mật) > Cookies and other site data (Cookie và dữ liệu trang web khác) > Nút chọn đã được đánh dấu. Block third-party cookies (Chặn cookie của bên thứ ba).
  2. Trong chrome://flags, hãy đặt thử nghiệm Bounce tracking mitigations (Giảm thiểu theo dõi tỷ lệ thoát) thành Enabled With Deletion (Đã bật và xoá).
  3. Mở DevTools rồi chuyển đến Application > Background services > Bounce tracking mitigations.
  4. Nhấp vào một đường liên kết số trang không truy cập và đợi (10 giây) để Chrome ghi lại số trang không truy cập. Thẻ Issues (Vấn đề) cảnh báo bạn về việc sắp xoá trạng thái.
  5. Nhấp vào Force run (Buộc chạy) để xoá trạng thái ngay lập tức.

Tính năng giảm hoạt động theo dõi tỷ lệ thoát liệt kê một trạng thái xoá.

Dịch vụ thông báo

Sau khi trình chạy dịch vụ nhận được Thông báo đẩy từ một máy chủ, trình chạy dịch vụ sẽ sử dụng Notifications API (API Thông báo) để hiển thị dữ liệu cho người dùng. Cách ghi lại Thông báo trong 3 ngày, ngay cả khi bạn không mở DevTools:

  1. Mở DevTools
  2. Chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Notifications (Thông báo) rồi nhấp vào Ghi lại. Record (Ghi).

    Thẻ Thông báo.

  3. Nhấp vào Schedule Notification (Lên lịch thông báo) và Allow (Cho phép) khi được nhắc.

  4. Chờ thông báo xuất hiện. DevTools ghi lại các sự kiện thông báo vào bảng.

    Nhật ký sự kiện trong thẻ Thông báo.

  5. Nhấp vào một sự kiện để xem thông tin chi tiết của sự kiện đó trong không gian bên dưới bảng.

  6. Bạn có thể đóng DevTools và để quá trình ghi chạy trong tối đa 3 ngày. Để dừng ghi, hãy nhấp vào Dừng. Stop (Dừng).

Tải theo suy đoán

Tải theo suy đoán cho phép tải trang gần như tức thì dựa trên các quy tắc suy đoán mà bạn xác định. Điều này cho phép trang web của bạn tìm nạp trước và kết xuất trước hầu hết các trang được chuyển đến.

Tìm nạp trước sẽ tìm nạp tài nguyên trước và kết xuất trước sẽ tiến thêm một bước nữa và kết xuất toàn bộ trang trong một quy trình kết xuất nền ẩn.

Bạn có thể gỡ lỗi các lượt tải theo suy đoán trong mục Application (Ứng dụng) > Background services (Dịch vụ nền) > Speculative loads (Tải theo suy đoán). Mục này có 3 chế độ xem:

  • Speculative loads (Tải theo suy đoán). Chứa trạng thái suy đoán cho trang hiện tại, URL hiện tại, các trang mà trang hiện tại cố gắng tải theo suy đoán và trạng thái của các trang đó.
  • Rules (Quy tắc). Chứa các tập hợp quy tắc trên trang hiện tại trong bảng điều khiển Elements (Phần tử) và trạng thái chung của các suy đoán.
  • Speculations (Suy đoán). Chứa một bảng có thông tin về các nỗ lực tải suy đoán và trạng thái của các nỗ lực đó. Nếu một nỗ lực không thành công, bạn có thể nhấp vào nỗ lực đó trong bảng để xem thông tin chi tiết và lý do không thành công.

Hãy thử gỡ lỗi các lượt tải theo suy đoán trên trang minh hoạ kết xuất trước này:

  1. Mở DevTools trên trang rồi chuyển đến Application > Background services > Speculative loads. Nếu bạn không thấy bất kỳ lượt tải theo suy đoán nào do trang khởi tạo, hãy tải lại trang đó.

    Các URL được trang này tải một cách suy đoán, trong đó có 2 URL tải thành công và 1 URL tải thất bại.

  2. Trang bắt đầu của bản minh hoạ kết xuất trước 2 trang và không kết xuất trước được 1 trang. Nhấp vào View all speculations (Xem tất cả suy đoán).

  3. Trong Speculations (Suy đoán), hãy chọn suy đoán có trạng thái Failure (Không thành công) để xem Failure reason (Lý do không thành công) trong mục có thông tin chi tiết ở dưới cùng.

    Đã chọn suy đoán không thành công.

    Trong trường hợp này, quá trình kết xuất trước không thành công vì không có trang /next3.html trên trang web.

  4. Bạn có thể lọc bảng trong thẻ Speculations (Suy đoán) bằng cách nhập một giá trị bất kỳ vào thanh bộ lọc ở trên cùng hoặc sử dụng một trong các bộ lọc có khoá: url:VALUE, action:VALUE hoặc action:VALUE.

    Thanh bộ lọc của bảng suy đoán.

  5. Mở mục Rules (Quy tắc) rồi nhấp vào Status (Trạng thái) để xem tập hợp quy tắc ở dưới cùng. Khi nhấp vào đường liên kết Rule set (Tập hợp quy tắc), bạn sẽ được chuyển đến bảng điều khiển Elements (Phần tử) và thấy vị trí xác định quy tắc suy đoán.

    Phần Rules (Quy tắc) có đường liên kết đến Rule set (Bộ quy tắc).

Để xem hướng dẫn chi tiết hơn, hãy xem bài viết Gỡ lỗi quy tắc suy đoán.

Thông báo đẩy

Để hiển thị thông báo đẩy cho người dùng, trước tiên, trình chạy dịch vụ phải sử dụng Push Message API (API Thông báo đẩy) để nhận dữ liệu từ một máy chủ. Khi trình chạy dịch vụ đã sẵn sàng hiển thị thông báo, trình chạy dịch vụ sẽ sử dụng Notifications API (API Thông báo). Cách ghi lại thông báo đẩy trong 3 ngày, ngay cả khi bạn không mở DevTools:

  1. Mở DevTools, chẳng hạn như trên trang minh hoạ này.
  2. Chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Push Messaging (Thông báo đẩy) rồi nhấp vào Ghi lại. Record (Ghi).

    Thẻ Thông báo đẩy.

  3. Trên trang minh hoạ, hãy bật/tắt Enable push notifications (Bật thông báo đẩy), nhấp vào Allow (Cho phép) khi được nhắc, nhập thông báo rồi gửi. DevTools ghi lại các sự kiện thông báo đẩy vào bảng.

    Nhật ký các sự kiện trong thẻ Nhắn tin qua thông báo đẩy.

  4. Nhấp vào một sự kiện để xem thông tin chi tiết của sự kiện đó trong không gian bên dưới bảng.

  5. Bạn có thể đóng DevTools và để quá trình ghi chạy trong tối đa 3 ngày. Để dừng ghi, hãy nhấp vào Dừng. Stop (Dừng).

API báo cáo

Một số lỗi chỉ xảy ra trong quá trình sản xuất. Bạn không bao giờ thấy các lỗi đó cục bộ hoặc trong quá trình phát triển vì người dùng, mạng và thiết bị thực sẽ thay đổi trò chơi.

Ví dụ: giả sử trang web mới của bạn dựa vào phần mềm của bên thứ ba sử dụng document.write() để tải các tập lệnh quan trọng. Người dùng mới trên khắp thế giới mở trang web của bạn nhưng họ có thể có kết nối chậm hơn so với kết nối mà bạn đã kiểm thử. Bạn không biết rằng trang web của bạn bắt đầu gặp sự cố đối với họ vì Chrome can thiệp vào document.write() trên các mạng chậm. Ngoài ra, bạn có thể muốn theo dõi các API ngừng hoạt động hoặc sắp ngừng hoạt động mà toàn bộ mã nguồn của bạn có thể đang sử dụng.

Reporting API (API Báo cáo) được thiết kế để giúp bạn theo dõi các lệnh gọi API không dùng nữa, các hành vi vi phạm bảo mật của trang và nhiều nội dung khác. Bạn có thể thiết lập tính năng báo cáo như mô tả trong bài viết Theo dõi ứng dụng web bằng Reporting API.

Cách xem các báo cáo do một trang tạo:

  1. Mở DevTools rồi chuyển đến Application > Background services > Reporting API.

    Các báo cáo được liệt kê trong Reporting API

Thẻ Reporting API (API Báo cáo) được chia thành 3 phần:

  • Bảng Reports (Báo cáo) có thông tin sau đây về từng báo cáo:
    • URL gây ra quá trình tạo báo cáo
    • Type (Loại) vi phạm
    • Báo cáo Trạng thái
    • Điểm cuối Destination (Đích đến)
    • Dấu thời gian Generated at (Được tạo vào)
    • Body (Nội dung) báo cáo
  • Phần xem trước Report body (Nội dung báo cáo). Để xem trước nội dung báo cáo, hãy nhấp vào một báo cáo trong bảng báo cáo.
  • Mục Endpoints (Điểm cuối) có thông tin tổng quan về tất cả các điểm cuối được định cấu hình trong tiêu đề Reporting-Endpoints.

Trạng thái báo cáo

Cột Status (Trạng thái) cho biết Chrome đã gửi báo cáo thành công, sắp gửi báo cáo đó hay không gửi được.

Trạng thái Mô tả
Success Trình duyệt đã gửi báo cáo và điểm cuối trả lời bằng mã thành công (200 hoặc mã phản hồi thành công khác 2xx).
Pending Trình duyệt đang cố gắng gửi báo cáo.
Queued Báo cáo đã được tạo và trình duyệt chưa cố gắng gửi báo cáo đó. Báo cáo xuất hiện dưới dạng Queued trong một trong 2 trường hợp sau:
  • Báo cáo mới và trình duyệt đang chờ xem có thêm báo cáo nào đến hay không trước khi cố gắng gửi báo cáo đó.
  • Báo cáo không mới; trình duyệt đã cố gắng gửi báo cáo này nhưng không thành công và đang chờ trước khi thử lại.
MarkedForRemoval Sau khi thử lại một lúc (Queued), trình duyệt đã ngừng cố gắng gửi báo cáo và sẽ sớm xoá báo cáo đó khỏi danh sách báo cáo cần gửi.

Báo cáo sẽ bị xoá sau một thời gian, bất kể báo cáo đó có được gửi thành công hay không.

Ngữ cảnh báo cáo sự cố

Với Reporting API (API Báo cáo), bạn có thể định cấu hình trang web để báo cáo sự cố cho điểm cuối máy chủ crash-reporting hoặc default. Báo cáo sự cố có thể bao gồm giao diện CrashReportContext cho phép bạn ghi lại dữ liệu tuỳ ý liên quan đến sự cố theo cặp khoá-giá trị cho ngữ cảnh duyệt web cấp cao nhất hiện tại.

Trong thẻ Application (Ứng dụng) > Background services (Dịch vụ nền) > Reporting API (API Báo cáo) > Crash Report Context (Ngữ cảnh báo cáo sự cố), bạn có thể kiểm tra dữ liệu bối cảnh sự cố và lọc theo khoá hoặc giá trị trong thanh bộ lọc ở trên cùng.

Thẻ Ngữ cảnh báo cáo sự cố.

Phiên được liên kết với thiết bị

Thông tin xác thực phiên được liên kết với thiết bị (DBSC) là một Web API và một giao thức giữa các tác nhân người dùng và máy chủ nhằm ngăn chặn hành vi trộm cookie bằng cách cho phép tác nhân người dùng xác nhận quyền sở hữu khoá riêng tư được lưu trữ an toàn.

Cách xem các phiên được liên kết với thiết bị, định nghĩa và sự kiện của các phiên đó:

  1. Mở DevTools trên một trang sử dụng DBSC.
  2. Chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Device bound sessions (Phiên được liên kết với thiết bị).
  3. Trong thanh bên ở bên trái, hãy mở rộng một trang web để xem các phiên đang hoạt động của trang web đó. Chọn một phiên để xem định nghĩa của phiên đó.

    Thẻ Phiên được liên kết với thiết bị.

  4. Bảng Events (Sự kiện) ghi lại các sự kiện DBSC: tạo, làm mới, thử thách và chấm dứt. Để giữ danh sách sự kiện trên các lượt chuyển trang, hãy đánh dấu vào check_box Preserve log (Giữ nhật ký).

  5. Trong bảng Events (Sự kiện), hãy chọn một sự kiện để xem thông tin chi tiết của sự kiện đó.

  6. Nếu một sự kiện không thành công, bạn sẽ thấy thông báo Error trong cột Result (Kết quả). Chọn sự kiện không thành công để xem thông tin chi tiết, mã lỗi phản hồi và nguyên nhân không thành công.

    Thẻ "Phiên được liên kết với thiết bị" có một sự kiện lỗi được chọn.

Mục Device bound sessions (Phiên được liên kết với thiết bị) trong thanh bên có thể làm nổi bật các vấn đề sau:

  • Terminated sessions (Phiên đã chấm dứt): Được biểu thị bằng một đường gạch ngang và biểu tượng database-off trong thanh bên.
  • Failed events (Sự kiện không thành công): Được làm nổi bật bằng biểu tượng cảnh báo. Phần tử No session (Không có phiên) ghi lại các sự kiện không thành công được liên kết với một trang web nhưng không liên kết với phiên đã biết.