Hướng dẫn dùng screen.debug JavaScript

Lời mở đầu

Đây là bài viết chia sẻ những kinh nghiệm cá nhân của tác giả về những phương pháp debug thường sử dụng trong việc phát triển Javascript.

Có rất nhiều cái bạn sẽ thấy quen, và biết về nó thật hiển nhiên, nhưng nếu bạn là một người có hứng thú với các cách làm để phát triển Javascript, tôi nghĩ nó sẽ có ích cho bạn !

1] Hàm Console.log — “lệnh bài” để debug

Thật khó để tìm ra ai hiện nay không sử dụng hàm console.log trong việc phát triển Javascript.

sample.js
console.log['get console'];

KẾT QUẢ THỰC HIỆN

Xác nhận kết quả thực hiện trong tab Console của Developer Tools trên Chrome

2] HIỂN THỊ ICON/ COLOR KHI DEBUG BẰNG CONSOLE

Khi nói tới console.log thì người ta sẽ nghĩ là log đơn giản, nhưng thực tế tùy vào dung lượng mà có khi sẽ phát sinh ra các warning hoặc error.

Ta cần nắm bắt và hiểu rõ trong trường hợp đặt nhiều console sẽ có những thông tin gì xuất hiện.

a] CONSOLE.ERROR

Khi bắt lỗi trong error handling, ta sẽ sử dụng cái này:

sample.js
console.error['get error'];

KẾT QUẢ THỰC HIỆN

b] CONSOLE.WARN

Về cá nhân tôi thì tôi không thường dùng cái này lắm.

Với cách sử dụng này, mặc dù phần xử lý vẫn có thể tiếp tục, nhưng chỉ có thể sử dụng trong những trường hợp như không đạt 100%, còn với trường hợp ngoài dự kiến lại hiếm khi thực hiện ra đúng console.error

sample.js
console.warn['get warn'];

KẾT QUẢ THỰC HIỆN

c] CONSOLE.INFO

Dùng để sử dụng khi muốn vẽ chung line với console.log

Khi muốn nắm bắt những thay đổi của value trong các method dài, tôi sẽ sử dụng nó vào các point phải nhấn mạnh.

sample.js
console.info['get info'];

KẾT QUẢ THỰC HIỆN

Nó sẽ theo kiểu như vậy.

Và được sử dụng để không làm sót các value phải xem đầu tiên trong khi đang thực hiện.

[VD với trường hợp nội dung value 3 là cái cần chú ý nhất]

d] TẠO ARRAY DỄ NHÌN THẤY CONSOLE.TABLE

Set để có array như dưới đây:

sample.js
var
array=[{
key1:'value1',
key2:'value2',
key3:'value3',
}];

Khi console.log phần nội dung giữa của array, nó sẽ cho ra như thế này:

sample.js
console.log[array];

KẾT QUẢ THỰC HIỆN [1]

Trông hơi khó nhìn một chút nhỉ *haha*

Và ta sẽ giải quyết vấn đề đó bằng console.table

sample.js
console.table[array];

KẾT QUẢ THỰC HIỆN [2]

Mọi thứ đã dễ xem hơn rồi đấy !

e] ĐO LƯỜNG THỜI GIAN THỰC HIỆN

Tốc độ thực hiện viết chương trình cũng là một yếu tố rất quan trọng.

Trong Javascript dĩ nhiên cũng có các phương pháp để các bạn thực hiện đo lường tốc độ xử lý này !

sample.js
console.time['timer'];
// Viết process bạn muốn đo lường thời gianconsole.timeEnd['timer'];

KẾT QUẢ THỰC HIỆN

ĐIỀU TRA NGUỒN GỌI RA ARGUMENT

Sử dụng console.trace

sample.js
function
saba[] {
function aji[] {
function maguro[] {
//run console.trace
console.trace[];
}
maguro[];
}
aji[];
}
// run saba[] function
saba[];

Đây là nội dung cuối cùng trong các mục tôi muốn giới thiệu liên quan đến CONSOLE !

Ngoài ra cũng có rất nhiều thông tin, kiến thức khác liên quan đến console mà nếu như có hứng thú, các bạn hãy tự mình trải nghiệm và học tập nhé.

KẾT QUẢ THỰC HIỆN

Với cách làm này, bạn hầu như nắm được hết các bước đã đi qua của method nào…

3] SỬ DỤNG BREAKPOINT

Nếu sử dụng breakpoimt thì ta có thể thực hiện restart, tạm ngưng… trong khi đang thực hiện program.

Mở tab SOURCE của [Developer Tools] ra, click vào hàng bạn muốn thực hiện breakpoint.

Khi reload page trong trạng thái trên, những xử lý bằng breakpoint đã setting sẽ ngưng lại, có thể thực hiện step.

a] REFRESH XỬ LÝ TỪ BREAKPOINT

Trường hợp refresh lại các xử lý từ breakpoint, nó sẽ hiện ra một loạt button giống như dưới đây, ở phía tay phải của tab SOURCE đã set breakpoint. Việc bạn cần làm chính là thực hiện từ chỗ này !

· Refresh xử lý

Cứ để nguyên như vậy. Khi ấn vào button này thì phần thực hiện sẽ tự động restart.

· Step over

Dù trong trường hợp gọi ra function đi nữa thì nó vẫn không di chuyển xử lý đến argument mà vẫn tiến hành đến hàng tiếp theo.

· Step in

Trong trường hợp gọi ra function, thì sẽ di chuyển xử lý đến function đó, rồi tiến hành xử lý trong function đã di chuyển đến.

· Step out

Thực hiện đến khi kết thúc function và exit function đó.

· Thao tác trên screen

Trường hợp đả setting breakpoint thì không chỉ [developer tools] mà trên screen cũng sẽ hiển thị button step over và restart xử lý, vậy nên ta có thể từ đó và thao tác tiếp.

b] THAY ĐỔI GIÁ TRỊ TRONG LÚC THỰC HIỆN

Set breakpoint, sau đó set [1,2,3,4] vào [sampleArray].

Khi thực hiện như bình thường thì kết quả của console.log chắc chắn sẽ trở thành [1,2,3,4]

Còn trên sampleArray của Scope bên phía tay phải Developer Tools:

Array[4]0:11:22:33:4

Khi set như trên sẽ có thể xác nhận được:

Trong Scope này, thử thay đổi sampleArray thành [100,2000,300,400]

Rồi tiếp tục xử lý các bước tiếp theo trong trạng thái này

Ngay lập tức, kết quả trong tab Sources sẽ trở thành [100,200,300,400]

Hơn thế nữa, kết quả xử lý của tab Console sẽ trở thành như dưới đây:

Set breakpoint như thế, bạn có thể thay đổi được giá trị ngay cả khi đang thực hiện step.

Theo như cách trên, việc thực hiện khi đang test và truyền irregular value trong lúc dev cũng trở nên dễ dàng hơn !

4] CHECK THÔNG TIN TRONG NETWORK

Thông tin HTTP nào có thể truyền đi được?

Các status code hay response có bị gửi trả lại không? — Khi bạn muốn thử xác nhận việc đó, hãy tận dụng tab Network

Lấy ví dụ: thử access vào //qiita.com/ xem nào.

Ta thấy ở đây “200 OK” được trả về

Mở Tab Headers trong Default ra rồi mở tab Response, bạn sẽ thấy file HTML được hiển thị giống như dưới đây:

Trong thực tế, trường hợp phát triển Javascript như là một response được lấy, tôi nghĩ sẽ có nhiều Response API trong format JSON, nhưng trong trường hợp đó format JSON data sẽ bị ẩn trên tab Response này.

5] DÙNG DHC ĐỂ THÔNG TIN

Khi viết xử lý thông tin, ta thường xảy ra nhiều vấn đề như: không biết code này có ổn không, parameter của thông tin truyền có bị sai gì không?… Để giải quyết điều đó, cách thích hợp nhất không gì ngoài thực hiện nội dung muốn truyền bằng code ngoài của Javascript.

Ta sẽ dùng extension của Chrome có tên là DHC để làm nó ~

Link install: //chrome.google.com/webstore/detail/dhc-resthttp-api-client/aejoelaoggembcahagimdiliamlcdmfm

Sau khi install => sẽ hiện icon ở trong app của Chrome. Ta click vào đó.

a] Cách sử dụng:

· Setting phần địa chỉ request

Có thể chọn là http hoặc https đều được.

· Set Header

Set header request.

· Chọn method

· Gửi tin request

· Response

Nội dung response và status code của HTTP sẽ được trả về.

Thêm vào đó, phần nội dung khi request sẽ hiển thị ở chỗ của response.

6] Cookie: Edit This Cookie

Browsing & Manipulating cookie đang sử dụng là EditThisCookie.

Chí ít tôi nghĩ đây là cái coo

kie dễ xài nhất trong debug cookie rồi!

Link install: //chrome.google.com/webstore/detail/editthiscookie/fngmhnnpilhplaeedifhccceomclgfbg?hl=ja

Cách dùng

Nếu Install thành công, sẽ hiện icon của cookie ở phía trên bên phải của Chrome. Hãy click vào đó.

Khi click vào, sẽ hiện ra list của cookie của website đó.

Sau đó, torng lúc debug, bạn hãy thử thay đổi giá trị hay xóa giá trị xem thế nào !

7] THAO TÁC LOCAL STORAGE

Gần đây không chỉ cookie, các dịch vụ sử dụng local storage cũng dần trở nên phổ biến hơn.

Đương là chúng có thể được sử dụng trong Developer Tools của Chrome rồi !

Đối với Session Strage cũng giống vậy, ta có thể thực hiện thao tác từ đây.

8] MINIFIED SOURCE

Khi phát triển bằng Javascript, tôi nghĩ bạn sẽ có nhiều lần thấy qua minified source.

Trong lúc debug, nó sẽ có nhiều cái liên quan với minified source. Nếu chưa nhìn thấy, đừng vội bỏ cuộc, hãy chú ý nhìn các tab source xung quanh nhé.

{}

Chủ Đề