2011-12-04 4 views
12

Tôi có một trang rất chậm, không tải, nhưng về khả năng đáp ứng của việc nhập vào các trường biểu mẫu trên trang.Hiệu suất Javascript: Cách kiểm tra những gì đang làm chậm trang?

Không có ajax trên trang - điều này không liên quan gì đến vận tải mạng.

Công cụ hoặc chiến lược tốt để khám phá nơi tắc nghẽn mã là gì? Tôi đã không tìm thấy gì trong công cụ dành cho nhà phát triển Chrome để cho tôi biết các nút cổ chai đang ở đâu.

+0

http://stackoverflow.com/questions/855126/what-is-the-best-way-to-profile-javascript-execution – RightSaidFred

+0

Bạn không có tab 'Tiểu sử' trong Chrome? – RightSaidFred

Trả lời

2

Có vẻ như tôi có một số sự kiện kích hoạt trên mỗi lần nhấn phím trên trường nhập của bạn. Những điều bạn có thể làm:

  1. Nếu trình thu gọn của Chrome không phù hợp với nhu cầu của bạn, hãy thử FireBug hoặc trình thu gọn của IE9 khá tốt. Trong IE9 bạn có thể thấy lượng thời gian CPU đã được sử dụng cho mỗi cuộc gọi hàm.
  2. Tạm thời loại bỏ các trình xử lý khỏi các trường, từng cái một và quan sát bất kỳ thay đổi nào về hiệu suất.

Hãy cho tôi biết cách hoạt động!

+0

Tôi nghĩ rằng bạn nói đúng là có những người xử lý bắn, nhưng tôi chưa đính kèm bất kỳ trường nào. Tất cả timeline và profiler của chrome đều bật lên là một số mã bên trong jquery đang kích hoạt. Rất kỳ quặc. – Marcin

+0

Đó có thể là sự xác thực của phía máy khách. –

+0

Tôi hy vọng là không, tôi chưa viết bất kỳ xác thực phía máy khách nào. – Marcin

4

Webkit có tùy chọn 'tiểu sử'. Mở công cụ nhà phát triển (ctrl + shift + i) và nhấp vào 'Hồ sơ'. Từ đó bạn có thể thấy một nút ghi (hình tròn) ở phía dưới. Nhấp vào nó và sử dụng trang của bạn như bình thường. Nhấp vào nó một lần nữa để dừng lại và kiểm tra thời gian của bạn cho các cuộc gọi chức năng của bạn!

Hoặc bạn có thể chức năng điểm chuẩn riêng sử dụng:

console.time("Some label"); 
console.timeEnd("Some label"); 
1

Vì mục đích này, tôi đã tạo UX Profiler. Nó theo dõi và nhóm tất cả các sự kiện xảy ra như là kết quả của một số hành động người dùng (bấm, bấm phím vv) và đo lường hiệu suất của chúng. Vì vậy, thật dễ dàng để xem nút cổ chai ở đâu.

+0

Sucks nhận xét trước đó của bạn đã bị xóa. Điều này có liên quan như một câu trả lời cho câu hỏi. – Marcin

+0

Vui lòng hủy xóa! –