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

Sofia Emelianova
Sofia Emelianova

Mục Dịch vụ trong nền của Công cụ của Chrome cho nhà phát triển là một tập hợp các công cụ dành 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. Dịch vụ trong nền có chức năng tương tự như quy trình trong nền.

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

Công cụ của Chrome cho nhà phát triển 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 Công cụ cho nhà phát triển không mở. Đ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ụ ở chế độ nền, Công cụ dành cho nhà phát triển có thể:

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

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

  1. Mở Công cụ cho nhà phát triển, ví dụ: trên trang minh hoạ này.
  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).

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

  3. Trên trang minh hoạ, hãy nhấp vào Lưu trữ thành phần trên máy. Thao tác này sẽ kích hoạt một số hoạt động tìm nạp ở chế độ nền. Công cụ cho nhà phát triển sẽ ghi lại các sự kiện vào bảng.

    Nhật ký sự kiện trong ngăn Tìm nạp ở chế độ 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 biểu tượng Dừng. Dừng.

Đồng bộ hóa dưới nền

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

  1. Mở Công cụ cho nhà phát triển, ví dụ: 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).

    Ngăn Đồ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ý worker dịch vụ tương ứng rồi nhấp vào Allow (Cho phép) khi được nhắc.

    Việc đăng ký trình chạy dịch vụ là một hoạt động đồng bộ hoá ở chế độ nền. Công cụ cho nhà phát triển sẽ ghi lại các sự kiện vào bảng.

    Nhật ký sự kiện trong ngăn Đồng bộ hoá ở chế độ 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 biểu tượng Dừng. Dừng.

(Thử nghiệm) Giảm hoạt động theo dõi số trang không truy cập

Thử nghiệm Giảm thiểu tính năng theo dõi lượt thoát trong Chrome cho phép bạn xác định và xoá trạng thái của những 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 lượt thoát. Bạn có thể buộc áp dụng biện pháp 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 đã bị xoá trạng thái.

Cách buộc áp dụng các biện pháp 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. > Cài đặt > Bảo mật. Quyền riêng tư và bảo mật > Cookie và các dữ liệu khác của trang web > Nút chọn đã đánh dấu. Chặn cookie của bên thứ ba.
  2. Trong chrome://flags, hãy đặt thử nghiệm Giảm thiểu hoạt động theo dõi số trang không truy cập thành Đã bật và xoá.
  3. Mở DevTools, ví dụ: trên trang minh hoạ, rồi chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Bounce tracking mitigations (Giảm thiểu tính năng theo dõi lượt thoát).
  4. Trên trang minh hoạ, hãy nhấp vào một đường liên kết thoát và đợi (10 giây) để Chrome ghi lại lượt thoát. Thẻ Vấn đề cảnh báo bạn về việc xoá trạng thái sắp tới.
  5. Nhấp vào Buộc chạy để xoá trạng thái ngay lập tức.

Các biện pháp giảm hoạt động theo dõi số trang không truy cập liệt kê một trạng thái bị xoá.

Thông báo

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

  1. Mở Công cụ cho nhà phát triển, ví dụ: trên trang minh hoạ này.
  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).

    Ngăn Thông báo.

  3. Trên trang minh hoạ, hãy nhấp vào Lên lịch thông báoCho 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 ngăn 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 biểu tượng Dừng. Dừng.

Tải theo suy đoán

Tính năng 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ải trước và hiển thị trước hầu hết các trang được điều hướng đến.

Tính năng tìm nạp trước sẽ tìm nạp trước một tài nguyên và tính năng kết xuất trước sẽ tiến xa hơn một bước và kết xuất toàn bộ trang trong một quy trình kết xuất ẩn ở chế độ nền.

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

  • 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 đó.
  • Quy tắc. Chứa các nhóm quy tắc trên trang hiện tại trong bảng điều khiển Elements (Thành phần) và trạng thái tổng thể của các dự đoán.
  • Suy đoán. Chứa một bảng có thông tin về các lần tải dự đoán và trạng thái của các lần tải đó. Nếu một lần thử không thành công, bạn có thể nhấp vào lần thử đó 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 tải theo suy đoán trên trang minh hoạ này:

  1. Mở DevTools trên trang rồi chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Speculative loads (Tải suy đoán). Nếu bạn không thấy bất kỳ lượt tải dự đoán nào do trang khởi tạo, hãy tải lại trang đó.

    Các URL được tải theo suy đoán của trang này, trong đó 2 URL thành công và 1 URL không thành công.

  2. Trang bắt đầu của bản minh hoạ kết xuất trước hai trang và không kết xuất trước một trang. Nhấp vào Xem tất cả suy đoán.

  3. Trong mục Suy đoán, hãy chọn suy đoán có trạng thái Không thành công để xem phần Lý do không thành công có thông tin chi tiết ở cuối.

    Lựa chọn dự đ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. Mở phần Quy tắc rồi nhấp vào Trạng thái để xem tập hợp quy tắc ở cuối. Khi nhấp vào đường liên kết Rule set (Bộ quy tắc), bạn sẽ được chuyển đến bảng điều khiển Elements (Thành phần) 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 Bộ quy tắc.

Để biết hướng dẫn chi tiết hơn, hãy xem phần Gỡ lỗi quy tắc dự đoán.

Thông báo đẩy

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

  1. Mở Công cụ cho nhà phát triển, ví dụ: 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).

    Ngăn Thông báo đẩy.

  3. Trên trang minh hoạ, hãy bật/tắt Bật thông báo đẩy, nhấp vào Cho phép khi được nhắc, nhập một tin nhắn 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ý sự kiện trong ngăn 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 biểu tượng Dừng. Dừng.

API báo cáo

Một số lỗi chỉ xảy ra trong môi trường phát hành chính thức. Bạn không bao giờ thấy các lỗi này trên máy 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 mình bắt đầu gặp sự cố 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 nên theo dõi các API không dùng nữa hoặc sắp không dùng nữa mà cơ sở mã của bạn có thể đang sử dụng.

Reporting API đượ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 lỗi vi phạm bảo mật trên trang của bạn và nhiều thông tin 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 API Báo cáo.

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

  1. Chuyển đến chrome://flags/#enable-experimental-web-platform-features, đặt Experimental Web Platform features (Tính năng thử nghiệm của nền tảng web) thành Enabled (Đã bật) rồi khởi động lại Chrome.
  2. Mở DevTools rồi chuyển đến Application (Ứng dụng) > Background services (Dịch vụ nền) > Reporting API (API báo cáo). Ví dụ: bạn có thể xem các báo cáo trên trang minh hoạ này.

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

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

  • Bảng Báo cáo có thông tin sau đây về từng báo cáo:
    • URL khiến báo cáo được tạo
    • Loại lỗi vi phạm
    • Trạng thái của báo cáo
    • Điểm cuối Đích đến
    • Dấu thời gian Đã tạo vào
    • Nội dung của báo cáo
  • Phần xem trước 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.
  • Phần Endpoints (Điểm cuối) cung cấp 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 Trạng thái cho bạn biết liệu Chrome đã gửi báo cáo thành công, sắp gửi 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ột 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 sẽ xuất hiện dưới dạng Queued trong một trong hai trường hợp sau:
  • Báo cáo này là 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.
  • Đây không phải là báo cáo 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.

Các báo cáo sẽ bị xoá sau một thời gian, cho dù báo cáo có được gửi thành công hay không.