Bạn hiện đang ngoại tuyến, hãy chờ internet để kết nối lại

Tính năng debug mã JavaScript trong Visual Studio 11 beta

Về tác giả
Bài viết này được cung cấp bởi MVP [Thân Bá Hùng]. Microsoft chân thành cảm ơn những MVP đã chia xẻ những kinh nghiệm chuyên môn của mình với những người sử dụng khác. Bài viết này sẽ được đăng trên website hoặc blog của MVP sau đây. Nếu bạn muốn xem các bài viết khác được chia xẻ bởi MVP, vui lòng nháy chuột vào đây.
Những triệu chứng
Trong quá trình phát triển ứng dụng của bạn, nhất là việc phát triển các ứng dụng Web và ứng dụng Metro sử dụng JavaScript, có nhiều lúc bạn sẽ gặp khó khăn trong việc Debug các mã đó, có thể bạn phải ngắt các ứng dụng để xử lý lỗi và tự mình tìm kiếm lỗi. Việc xử lý ngoại lệ rất khó khăn trong quá trình phát triển chương trình.
Nguyên nhân
Nguyên nhân do các công cụ phát triển ứng dụng không hỗ trợ hoàn chỉnh việc Debug một mã JavaScript, và do đó bạn sẽ gặp khó khăn khi xử lý, nhất là xử lý các Exception.
Giải pháp
Những tính năng tăng cường cho việc Debug mã JavaScript

Visual Studio 11 beta giới thiệu một trải nghiệm lập trình mới với class JavaScript và cung cấp một bộ công cụ giàu tính năng cho việc phát triển ứng dụng Windows Metro. Debugging là một phần quan trọng của bộ phận này. Trong bài viết này tôi đi vào tập trung vào một số kịch bản mới và các cải tiến mà Microsoft đã bổ sung vào phiên bản này.

Thay đổi ở điều khiển ngoại lệ (exception)

Trong phiên bản Visual Studio trước, trên mỗi unhandled exception bạn chỉ có thể break nó khi debug mã JavaScript. Bây giờ, đối với những Exception này, sẽ có một tùy chọn để break trên mỗi exception. Tiến trình này sẽ dừng bằng cách check bên dưới cột Thrown trong hộp hội thoại Exceptions (Debug--> Exceptions). Bên cạnh có một cột được disabled, đó là “User-Unhandled”, vì nó không được áp dụng cho việc gỡ lỗi JavaScript.





Cài đặt mặc định cho phép các ngoại lệ được sử dụng cho một số lỗi thường gặp (ví dụ như Object doesn’t support this property or method). Khi mục “JavaScript Runtime Exceptions” được đánh dấu ở cột Thrown, trình gỡ rối sẽ được break trên tất cả các lỗi với các trường hợp, ngay cả khi những lỗi đó không được liệt kê trong danh sách của hộp hội thoại.

Ví dụ:




Trong ví dụ ở trên, phần tử element ID bị lỗi hoặc thiếu, làm cho hàm trả về document.getElementID trả về giá trị Null với lỗi ngoại lệ là “Object expected”. Bạn cũng có thể vô hiệu hóa các trường hợp ngoại lệ này bằng cách đánh dấu chọn “Break when this exception type is thrown”, nghĩa là sau này trình debug sẽ sẽ không ngắt khi có exception này xảy ra.

Debug Output sẽ chứa các thông tin về exception:



Khi một exception đang được break, một cửa sổ LOCAL sẽ hiển thị các thông tin và giá trị của exception này, bạn có thể mở rộng ra để xem thêm thông tin các thuộc tính của nó.



Debugging web workers

Những ứng dụng Metro JavaScript và ứng dụng web chạy trên môi trường IE10 có thể sử dụng WEB WORKERS để chạy các mã JavaScript ở bên dưới. Trình gỡ rối Visual Studio 11 đã hỗ trợ đầy đủ tính năng này. Khi bạn ngắt một Page Context hoặc một Worker Context, các xử lý khác cũng ngừng chạy. Nội dung hiện tại ở nơi mà được đánh dấu ngắt sẽ hiển thị một thanh công cụ Debug Location. Nội dung của trang sẽ được hiển thị như là một Main Thread trong khi đó, và nội dung làm việc đó.



Các điểm tăng cường khác

· Những bước gỡ lỗi mã JavaScript tang cường khả năng làm việc của chúng ta so với Visual Studio 2010.

· Hỗ trợ debug mã JavaScript từ xa (cả thiết bị x86/amd64 và Arm): Bạn có thể chạy những ứng dụng JavaScript Metro trên một thiết bị hoặc gắn nó với một tiến trình đang chạy mã JavaScipt ở một thiết bị từ xa.

· DOM Explorer và JavaScript Console là hai công cụ mới trong sản phẩm này.

· Cửa sổ Call Stack chứa nhiều thông tin như là số dòng và thông tin của tập tin mã nguồn, cho bạn được nhiều thông tin hơn cho việc debug mà không cần phải chuyển qua lại quá nhiều cửa sổ.



Kết luận

Những thông tin trên là một số điểm cải tiến của quá trình gỡ lỗi cho mã JavaScript. Nó là một thành phần mới của bộ Visual Studio 11 beta, Microsoft vẫn đang tiếp tục cải tiến dựa vào các feedback của người dùng để hoàn thiện hơn bộ công cụ này.
Để biết thêm thông tin
Bạn có thể tham khảo thêm ở http://blogs.msdn.com/b/visualstudio/
Tuyên bố không chịu trách nghiệm nội dung Giải pháp cộng đồng
CÔNG TY MICROSOFT VÀ/HOẶC CÁC NHÀ CUNG CẤP CỦA HỌ KHÔNG BẢO ĐẢM VỀ TÍNH PHÙ HỢP, ĐỘ TIN CẬY HOẶC TÍNH CHÍNH XÁC CỦA THÔNG TIN VÀ HÌNH ẢNH LIÊN QUAN Ở ĐÂY. MỌI THÔNG TIN VÀ HÌNH ẢNH NHƯ VẬY ĐƯỢC CUNG CẤP “NHƯ NGUYÊN MẪU” MÀ KHÔNG CÓ BẤT KỲ BẢO ĐẢM NÀO. MICROSOFT VÀ/HOẶC CÁC NHÀ CUNG CẤP CỦA HỌ KHÔNG CHỊU TRÁCH NHIỆM ĐỐI VỚI MỌI BẢO ĐẢM VÀ ĐIỀU KIỆN VỀ THÔNG TIN VÀ HÌNH ẢNH LIÊN QUAN NÀY, BAO GỒM CẢ MỌI BẢO ĐẢM VÀ ĐIỀU KIỆN LIÊN QUAN VỀ TÍNH THƯƠNG MẠI, PHÙ HỢP CHO MỘT MỤC ĐÍCH ĐẶC BIỆT, NỖ LỰC CỦA CÔNG VIỆC, TƯ CÁCH VÀ CAM KẾT KHÔNG VI PHẠM. BẠN ĐỒNG Ý MỘT CÁCH CỤ THỂ LÀ KHÔNG CÓ TRƯỜNG HỢP NÀO MÀ MICROSOFT VÀ/HOẶC CÁC NHÀ CUNG CẤP CỦA HỌ BỊ RÀNG BUỘC VÀO BẤT KỲ THIỆT HẠI TRỰC TIẾP, GIÁN TIẾP, TRỪNG PHẠT, TÌNH CỜ, ĐẶC BIỆT, HỆ QUẢ HOẶC BẤT KỲ THIỆT HẠI DẠNG NÀO, BAO GỒM NHƯNG KHÔNG GIỚI HẠN THIỆT HẠI DO MẤT MÁT, DỮ LIỆU HOẶC LỢI ÍCH, XẢY RA HOẶC TRONG MỌI CÁCH LIÊN QUAN ĐẾN VIỆC SỬ DỤNG HOẶC KHÔNG THỂ SỬ DỤNG THÔNG TIN VÀ HÌNH ẢNH LIÊN QUAN CÓ Ở ĐÂY, DÙ LÀ DỰA VÀO HỢP ĐỒNG, LỖI GÂY THIỆT HẠI, SƠ SUẤT, NGHĨA VỤ PHÁP LÝ HOẶC BẤT KỲ CƠ SỞ NÀO KHÁC, NGAY CẢ NẾU MICROSOFT HOẶC BẤT KỲ NHÀ CUNG CẤP NÀO CỦA HỌ ĐÃ ĐƯỢC TƯ VẤN VỀ KHẢ NĂNG BỊ THIỆT HẠI.
Chú ý Đây là một bài viết "XUẤT BẢN NHANH" được tạo trực tiếp từ trong trung tâm hỗ trợ của Microsoft. Thông tin có trong tài liệu này được cung cấp nhằm trả lời các vấn đề mới xuất hiện. Do việc cung cấp nhanh chóng, tài liệu có thể có lỗi in ấn và có thể được sửa đổi bất kỳ lúc nào mà không cần thông báo. Hãy xem Điều khoản Sử dụng để xem xét thêm.
Thuộc tính

ID Bài viết: 2715429 - Xem lại Lần cuối: 06/18/2013 02:21:00 - Bản sửa đổi: 2.1

Microsoft Visual Studio 2012 Beta

  • kbstepbystep kbmvp kbcommunity KB2715429
Phản hồi
>