Mục lục:
Video: Lập trình ASP.NET MVC - Bài 48: Cách đọc dữ liệu từ file XML và binding ra Dropdownlist bằng Ajax 2025
Từ sự kiện gợi lên tất cả các loại hình ảnh. Đối với một người không lập trình, một sự kiện chỉ là "cái gì đó xảy ra. "Nếu bạn quen với các cửa sổ và khung trong Java, bạn có thể nghĩ đến một sự kiện như một sự kiện xảy ra khi đánh thức một đoạn mã. Ví dụ, một cú nhấp chuột hoặc keystroke của người dùng đánh thức mã để đặt một tùy chọn và hiển thị một hộp OK. Nhấp chuột hoặc keystroke chính nó được gọi là sự kiện vì nó xảy ra độc lập với chương trình đang chạy. Chỉ người dùng biết khi nào anh ta sẽ nhấn nút đó. Và khi nút nhấn, một số phần của chương trình Java chỉ cần thức dậy và giải quyết tình huống. Kịch bản này được gọi là chương trình hướng sự kiện .
Các chương trình lập trình dựa trên sự kiện
SAX là sự kiện . Ví dụ, bạn lên giường ngủ ngon giấc ban đêm. Bạn có thể đặt tay lên để đặt đồng hồ báo thức và sau đó định cư, nhắm mắt lại, và trở nên bất tỉnh trong vài giờ. Sau đó, một sự kiện quan trọng xảy ra: Một thời gian nhất định trong ngày đến. Khi sự kiện diễn ra, đồng hồ báo thức sẽ chuyển sang chế độ "thức dậy" - và tạo ra một cơn đói khủng khiếp để khuấy bạn ra khỏi giấc ngủ yên tĩnh của bạn.
Đây là một kịch bản khác. Bạn là một quản trị viên bận rộn và bạn sẽ được ra ngoài trong vài giờ, nhưng bạn không muốn bỏ lỡ bất kỳ doanh nghiệp quan trọng. Trước khi rời văn phòng, bạn nói với trợ lý của bạn, "Gọi cho tôi nếu có điều gì quan trọng xảy ra. "Việc ban hành lệnh này giống như việc cài đặt đồng hồ báo thức. Bạn đang nói với trợ lý của mình (đồng hồ báo thức) để đánh thức bạn nếu một sự kiện diễn ra. Yêu cầu này cho trợ lý của bạn (hoặc với đồng hồ báo thức) được gọi là đăng ký . Trong một trong hai kịch bản, bạn đang đăng ký bản thân với một dịch vụ wakeup. Sau khi bạn đã đăng ký, bạn có thể theo đuổi hoạt động không nhàn nhã của bạn, bỏ qua tất cả các hoạt động kinh doanh thực cho đến khi một số sự kiện xảy ra. Sau đó …
Vòng, nhẫn. Điện thoại di động của bạn hollering tại bạn. "Xin chào? "
" Xin chào. Đây là trợ lý của bạn. Tôi có con số doanh thu trong quý I. Họ là 1 triệu, 4 triệu và 2 triệu. "
" Hãy xem. Đó là tổng cộng 7 triệu ", bạn nói. "Tôi sẽ lưu ý nó trên PalmPilot của tôi. Cảm ơn. " Em cúp điện thoại.
Một vài khoảnh khắc sau đó, bạn sẽ nhận được một cú điện thoại khác. "Chủ tịch tập đoàn Big Bucks, Inc, muốn kết thúc hợp đồng. Họ đang nói 10 triệu đô la. "
"Hmm," bạn trả lời. "Điều đó sẽ mang lại doanh thu năm của chúng tôi đến 17 megabucks. Tôi sẽ lưu trữ thông tin đó trong ứng dụng bảng tính của tôi. Cảm ơn bạn đã gọi. "
Mỗi tương tác này được gọi là gọi lại .Trước đó trong ngày, khi bạn đăng ký nguyện vọng với trợ lý, bạn đã yêu cầu gọi lại. Sau đó, bất cứ khi nào một sự kiện diễn ra, trợ lý gọi lại để thông báo cho bạn về sự kiện. Trong các thuật ngữ lập trình Java, trợ lý gọi một trong nhiều phương pháp của bạn (một trong các tiểu chương trình Java của bạn).
Các sự kiện của chương trình lập trình dựa trên sự kiệnLập trình theo sự kiện có ba phần:
- Đăng ký: Bạn đăng ký mong muốn được thông báo bất cứ khi nào xảy ra sự kiện. Bạn đăng ký ước muốn này bằng một đoạn mã khác - một đối tượng khác, thường là một cái gì đó bạn đã nhập (chẳng hạn như một đoạn mã là một phần của API của người khác). Đối tượng này sau đó đồng hồ, từ phía sau hậu trường, cho sự xuất hiện của sự kiện mà bạn chỉ định.
- Sự kiện xảy ra: Một sự kiện cụ thể sẽ xảy ra.
- Callback: Đoạn mã khác thực hiện gọi lại. Một trong những phương pháp của bạn được gọi.
Hai loại mã
Phân biệt mã active và passive rất hữu ích:
- Mã hoạt động có một phương thức chính. Mã hoạt động, một khi nó bắt đầu chạy, mất giai đoạn trung tâm. Mã hoạt động có chứa chủ đề thực hiện điều khiển toàn bộ trò chơi bóng.
- Mã thụ động chỉ ngồi ở đó, chờ đợi để được gọi. Một lớp Dice thụ động không làm gì cả cho đến khi một số mã khác gọi là Dice. cuộn().
Bây giờ, bạn có thể nghĩ rằng mã thụ động là tất cả những gì bạn cần cho lập trình hướng sự kiện nhưng nó không phải. Để xử lý sự kiện, bạn cần bước đăng ký này. Mã thụ động bắt đầu bằng cách đăng ký với một số đoạn mã khác.
Để khẳng định ý tưởng đăng ký này, hãy suy nghĩ về một ví dụ từ thế giới hiển thị của con chuột, cửa sổ và các nút. Bạn tạo một cửa sổ hoặc khung. Bạn muốn khung của bạn đáp ứng các cú nhấn chuột, vì vậy bạn hãy thực hiện lệnh sau đây:
. addMouseListener (này);
Lệnh này đăng ký khung của bạn với nút. Lệnh nói, có hiệu lực, Bất cứ khi nào một sự kiện chuột xảy ra, hãy gọi một trong những phương pháp xử lý con chuột của khung . Sau đó, khi người dùng nhấp chuột, khung sẽ được gọi lại. Máy tính gọi phương thức mouseClicked của khung.
Các sự kiện SAX
Chắc chắn, SAX là sự kiện, nhưng điều này không có nghĩa là một chương trình SAX đợi cho nhấp chuột. Thay vào đó, mã SAX tuân theo mô hình đăng ký-sự kiện-gọi lại mô tả trong vài đoạn cuối cùng. Mỗi chương trình SAX có hai miếng mã không thể thiếu:
- Một đoạn mã mà bạn viết - gọi là handler . (Trình xử lý của bạn có thể mở rộng một lớp DefaultHandler được viết trước). Trình xử lý giống như giám đốc điều hành triệu đô la trong phần trước.
- Một đoạn mã mà bạn thường không viết - trình phân tích cú pháp . Bộ phân tích cú pháp đóng vai trò như trợ lý của giám đốc điều hành. API Java 1. 4 có một bộ phân tích cú pháp tích hợp sẵn. Bạn tạo một instance của bộ phân tích cú pháp này, và sau đó bạn đăng ký trình xử lý của bạn với cá thể trình phân tích cú pháp đó. Có hiệu lực, bạn nói cho cá thể để gọi lại trình xử lý của bạn bất cứ khi nào một sự kiện diễn ra.
Bất cứ thứ gì phải làm với XML là mới, và vẫn ở trong trạng thái thông lượng. Do đó, các thuật ngữ được vá với nhau trong một số cách khác thường. Trong khi phát triển phiên bản SAX 2, một số techies đã có một lễ hội make-up-tên mới. Những gì thường được gọi là "trình phân tích cú pháp" được thể hiện trong một giao diện Java mang tên XMLReader. Có được sử dụng để được một lớp học có tên org. xml. sax. Trình phân tích cú pháp, nhưng lớp có bị phản đối (có nghĩa là bạn nên cạo nó xuống dưới đáy của giày). Để làm cho mọi thứ trở nên phức tạp hơn, vẫn có một công cụ phân tích cú pháp khác là javax. xml. bộ phân tích cú pháp. SAXParser. Bạn sử dụng SAXParser này để biến mình thành một XMLReader. Với bất kỳ may mắn, bạn sẽ nhanh chóng trở nên quen với thuật ngữ phức tạp này. Bây giờ, hãy nhớ rằng cái gọi là "trình phân tích cú pháp" thường là một thể hiện của XMLReader.
Kịch bản đăng ký và gọi lại là điều làm cho sự kiện SAX được định hướng. Bây giờ điều buồn cười là, một sự kiện SAX không phải là hữu hình. Một sự kiện SAX sẽ không nhắc nhở bạn về một phím tắt hoặc một nút bấm. Trong SAX, bộ phân tích cú pháp quét một tài liệu XML từ trên xuống dưới. Bất cứ khi nào trình phân tích cú pháp gặp một điều thú vị, trình phân tích cú pháp sẽ kích hoạt một sự kiện và gọi trình xử lý. Sau đó, điều này phụ thuộc vào người điều khiển để làm điều gì đó về cuộc gặp gỡ thú vị này.