sieuthicode.com

Thông báo

16

Ưu Đãi Khi Mua Hosting

Mã giảm giá 10% : HOSTING1205
1 năm trước

THÔNG BÁO API

API MBBANK ĐÃ UPDATE VẪN SỬ DỤNG BÌNH THƯỜNG NHÉ
2 năm trước

Thông Báo Khẩn

Chúng tôi đã mã hóa mật khẩu và dữ liệu API. Vui lòng xóa và thêm lại tài khoản của bạn.
2 năm trước

NHẬN FIX TẤT CẢ API

NHẬN FIX TẤT CẢ API TỪ 100K ĐÊN 300K MỌI API
2 năm trước

THÔNG BÁO MỚI

MÃ GIẢM 50% KHI MUA CODE : SINAMI23H
2 năm trước
SIÊU THỊ CODE / KIẾN THỨC & CÔNG NGHỆ

Cách dùng Chrome DevTools để tìm nguyên nhân website gặp lỗi

Khi website trắng trang, nút bấm không phản hồi hoặc dữ liệu tải mãi không xong, hãy dùng Chrome DevTools để xác định lỗi nằm ở JavaScript, yêu cầu mạng hay quá trình hiển thị trước khi sửa mã hoặc đổi cấu hình máy chủ. Cách làm hiệu quả là tái hiện đúng thao tác gây lỗi, ghi nhận bằng chứng rồi kiểm tra từng giả thuyết.

Hướng dẫn dưới đây dành cho chủ website và lập trình viên cần tìm nguyên nhân có thể xử lý được. Bạn không cần dùng hết các công cụ; hãy bắt đầu với Console và Network, sau đó mở rộng khi đã có dấu hiệu cụ thể.

Chuẩn bị một lần tái hiện lỗi có thể đối chiếu

Mở trang gặp sự cố, nhấn F12 hoặc Ctrl + Shift + I trên Windows/Linux. Trên macOS, dùng Command + Option + I. Bạn cũng có thể nhấp chuột phải vào trang và chọn Inspect.

Chuẩn bị một lần tái hiện lỗi có thể đối chiếu

Trước khi tải lại trang, ghi rõ URL, trạng thái đăng nhập và thao tác gây lỗi. Ví dụ, “nhấn Lưu sau khi thay địa chỉ giao hàng” hữu ích hơn mô tả “website bị hỏng”. Không ghi mật khẩu hoặc dữ liệu cá nhân vào báo cáo.

  • Mở Network trước khi thực hiện thao tác để ghi nhận yêu cầu mạng.
  • Bật Preserve log nếu lỗi xuất hiện sau chuyển trang; tùy chọn này giữ nhật ký qua các lần điều hướng.
  • Thử một lần với trạng thái bình thường trước khi thay đổi cache hoặc tốc độ mạng.
  • Nếu nghi tiện ích trình duyệt can thiệp, đối chiếu bằng hồ sơ Chrome sạch hoặc cửa sổ ẩn danh không bật tiện ích.

Kết quả cần có là một chuỗi thao tác khiến lỗi xuất hiện lặp lại. Nếu chỉ xảy ra với một tài khoản, giữ nguyên điều kiện đó để điều tra quyền truy cập hoặc dữ liệu riêng của tài khoản.

Dùng Console để lần theo lỗi JavaScript

Console hiển thị lỗi JavaScript cùng nhiều thông báo khác. Hãy xóa nhật ký cũ rồi thực hiện lại đúng thao tác gây sự cố. Ưu tiên lỗi xuất hiện ngay tại thời điểm đó, không mặc định mọi dòng màu đỏ đều là nguyên nhân chính.

Đọc thông báo và vị trí phát sinh

Ví dụ minh họa giả định: nút mở giỏ hàng không hoạt động và Console báo TypeError: Cannot read properties of undefined. Thông báo cho thấy mã đang đọc thuộc tính của một giá trị chưa tồn tại, nhưng chưa đủ để kết luận dữ liệu thiếu từ đâu.

Nhấp vào tên tệp và số dòng, xem ngăn xếp lời gọi để tìm hàm xử lý liên quan. Nếu bản triển khai có source map phù hợp, DevTools có thể hiển thị mã nguồn dễ đọc hơn thay vì chỉ mã đã rút gọn.

Dừng tại thời điểm lỗi xảy ra

Trong Sources, bật chế độ tạm dừng khi có ngoại lệ rồi tái hiện lỗi. Khi chương trình dừng, kiểm tra biến trong Scope và đường đi trong Call Stack. Với lỗi chỉ xuất hiện khi nhấn nút, có thể đặt breakpoint tại hàm xử lý sự kiện.

Không vội thêm điều kiện bỏ qua giá trị rỗng để làm mất thông báo. Cần xác định dữ liệu thực sự được phép thiếu hay một yêu cầu trước đó đã thất bại. Tuyệt đối không dán mã lạ vào Console, nhất là trên trang quản trị đang đăng nhập.

Dùng Network để xác định yêu cầu nào thất bại

Nếu trang không có dữ liệu, không lưu được biểu mẫu hoặc tải thiếu tài nguyên, Network thường cung cấp bằng chứng rõ hơn giao diện. Chọn bộ lọc Fetch/XHR cho các yêu cầu dữ liệu, hoặc xem JS, CSS và Img khi tài nguyên tương ứng bị thiếu.

Dùng Network để xác định yêu cầu nào thất bại

Nhấp vào yêu cầu đáng nghi và đọc các phần sau:

  • Headers: địa chỉ, phương thức, mã trạng thái và thông tin yêu cầu, phản hồi.
  • Payload: dữ liệu trình duyệt gửi đi, nếu có.
  • Response hoặc Preview: nội dung máy chủ thực sự trả về.
  • Timing: thời gian phân bổ cho kết nối, chờ phản hồi và tải dữ liệu.
  • Initiator: thành phần hoặc đoạn mã khởi tạo yêu cầu.

Mã 401 thường liên quan đến thiếu hoặc không hợp lệ thông tin xác thực; 403 cho biết máy chủ từ chối truy cập. Với 404, kiểm tra đường dẫn và tuyến xử lý. Lỗi 5xx cần đối chiếu nhật ký máy chủ, vì DevTools không thể tự chỉ ra dòng mã backend gây lỗi.

Phản hồi 200 chưa có nghĩa chức năng thành công. Ví dụ giả định, yêu cầu lấy danh sách đơn hàng trả về HTML của trang đăng nhập thay vì JSON. Giao diện sau đó có thể báo lỗi phân tích dữ liệu. Hãy kiểm tra nội dung phản hồi và chuỗi chuyển hướng thay vì chỉ nhìn mã trạng thái.

Nếu Console báo CORS, hãy xem thông báo cụ thể và yêu cầu kiểm tra trước nếu có. Không vô hiệu hóa bảo mật trình duyệt để coi đó là cách sửa; cấu hình cho phép truy cập phải được xử lý ở phía máy chủ phù hợp.

Kiểm tra giao diện và độ chậm bằng đúng công cụ

Elements dành cho lỗi hiển thị

Khi nút bị che, chữ tràn hoặc bố cục lệch, dùng công cụ chọn phần tử trong Elements. Xem Styles để biết quy tắc CSS nào đang áp dụng hoặc bị ghi đè; xem Computed để đọc giá trị cuối cùng và mô hình hộp của phần tử.

Bạn có thể tắt thử một thuộc tính như overflow hoặc điều chỉnh kích thước để kiểm chứng giả thuyết. Thay đổi này thường chỉ tồn tại trong phiên kiểm tra, không tự cập nhật mã nguồn trên máy chủ. Sau khi tìm được nguyên nhân, sửa trong dự án và triển khai lại.

Performance dành cho thao tác bị khựng

Nếu trang đã tải nhưng gõ chữ hoặc mở menu vẫn chậm, ghi một phiên ngắn trong Performance bao quanh thao tác đó. Tìm đoạn luồng chính bận lâu và xem công việc liên quan đến JavaScript, tính toán bố cục hoặc vẽ giao diện.

Nếu thời gian chủ yếu nằm ở chờ phản hồi mạng, tiếp tục kiểm tra Network và phía máy chủ. Nếu yêu cầu đã hoàn tất nhưng giao diện còn khựng, ưu tiên điều tra xử lý phía trình duyệt. Không dùng một lần đo trên máy cá nhân để khẳng định hiệu năng cho mọi người dùng.

Những nhầm lẫn khiến việc chẩn đoán đi sai hướng

  • Đổ lỗi cho hosting ngay khi trang chậm: tài nguyên lớn hoặc JavaScript nặng cũng có thể là nguyên nhân. Cần phân biệt thời gian chờ máy chủ với thời gian xử lý trên trình duyệt.
  • Xóa toàn bộ dữ liệu quá sớm: thao tác này có thể làm mất trạng thái đăng nhập và dấu vết lỗi. Hãy thu thập bằng chứng trước.
  • Hiểu sai Disable cache: tùy chọn này phục vụ kiểm tra cache trình duyệt khi DevTools đang mở; không đồng nghĩa đã bỏ qua cache CDN hoặc mọi cơ chế lưu trữ khác.
  • Sửa nhiều yếu tố cùng lúc: thay đổi đồng thời CSS, API và cấu hình khiến bạn khó biết điều gì thực sự giải quyết lỗi.
  • Chia sẻ nhật ký nguyên trạng: tệp HAR, ảnh chụp Headers hoặc phản hồi có thể chứa cookie, token và dữ liệu người dùng. Cần rà soát, loại bỏ thông tin nhạy cảm trước khi gửi.
Những nhầm lẫn khiến việc chẩn đoán đi sai hướng

Xác nhận bản sửa và giải đáp tình huống thường gặp

Sau khi sửa, chạy lại đúng kịch bản ban đầu với cùng loại tài khoản và dữ liệu kiểm thử. Kiểm tra đồng thời kết quả trên giao diện, phản hồi Network và lỗi Console liên quan. Với chức năng lưu dữ liệu, tải lại trang để xác nhận dữ liệu đã được lưu, không chỉ thay đổi tạm trên màn hình.

Không thấy lỗi trong Console thì website có bình thường không?

Không. Sai logic, phản hồi sai dữ liệu hoặc CSS che phần tử có thể không tạo lỗi JavaScript. Hãy đối chiếu hành vi mong muốn với Network và Elements.

Chỉ lỗi trên điện thoại thì kiểm tra thế nào?

Dùng chế độ mô phỏng thiết bị để kiểm tra kích thước màn hình và thao tác cơ bản. Tuy nhiên, mô phỏng không thay thế hoàn toàn thiết bị thật. Nếu lỗi không tái hiện, cần kiểm tra trên thiết bị gặp vấn đề, có thể dùng gỡ lỗi từ xa khi môi trường hỗ trợ.

DevTools có xác định chính xác lỗi máy chủ không?

DevTools cho biết trình duyệt gửi gì, nhận gì và mất bao lâu. Muốn xác định nguyên nhân bên trong máy chủ, cần đối chiếu log ứng dụng bằng thời điểm và mã yêu cầu nếu hệ thống có cung cấp.

Tạo phiếu lỗi để thực hiện lần sửa tiếp theo

Hãy lập một phiếu gồm URL, môi trường, thao tác tái hiện, kết quả mong muốn, kết quả thực tế và bằng chứng đã che dữ liệu nhạy cảm. Ghi thêm giả thuyết đang kiểm tra cùng tiêu chí xác nhận, chẳng hạn yêu cầu trả đúng dữ liệu và giao diện hiển thị được sau khi tải lại. Đây là đầu vào cụ thể để bạn tự sửa hoặc chuyển cho lập trình viên mà không phải điều tra lại từ đầu.

Chia sẻ bài viết này