[Bài đọc] JQuery Ajax và kiến thức cơ bản

12. JQuery & Ajax

AJAX – “Asynchronous JavaScript and XML” – là một bộ công cụ cho phép load dữ liệu từ server mà không yêu cầu tải lại trang. Nó sử dụng chức năng sẵn có XMLHttpRequest(XHR) của trình duyệt để thực hiện một yêu cầu đến server và xử lý dữ liệu server trả về.

jQuery cung cấp method $.ajax và một số methods tiện lợi giúp bạn làm việc với XHRs thông qua trình duyệt một cách dễ dàng hơn.

1. Phương thức load()

Cú pháp đơn giản cho phương thức load() trong jQuery: [selector].load( URL, [data], [callback] );

Trong đó:

URL − URL của ngồn Server-Side để Yêu cầu (Request) được gửi tới. Nó có thể là CGI, ASP, JSP, hoặc PHP script… 

Data − là tham số tùy ý, biểu diễn một đối tượng mà các thuộc tính của nó được xếp theo thứ tự vào trong các tham số được mã hóa một cách thích hợp để được truyền tới yêu cầu (Request). Nếu được xác định, Request được tạo sử dụng phương thức POST. Nếu bị bỏ qua, phương thức GET được sử dụng.

Callback − Một hàm callback được gọi sau khi  dữ liệu phản hồi đã được tải vào trong các phần tử của tập hợp đã kết nối, tham số đầu tiên được truyền tới hàm này là văn bản phản hồi từ Server và tham số thứ hai là mã hóa trạng thái

<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>

<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){
$('#stage').load('/jquery/result.html');
});
});
</script>
</head>

<body>
<p>Click on the button to load /jquery/result.html file −</p>

<div id = "stage" style = "background-color:cc0;">
STAGE
</div>

<input type = "button" id = "driver" value = "Load Data" />
</body>
</html>

Ở đây load() khởi tạo một Ajax request tới URL là file “result.html” .Sau khi tải tệp này, tất cả nội dung sẽ được điền vào bên trong <div> được gắn thẻ với giai đoạn ID. Giả sử, tệp /jquery/result.html của chúng tôi chỉ có một dòng HTML

2. Phương thức getJSON() 

Cú pháp

[selector].getJSON( URL, [data], [callback] );

Trong đó:

URL – URL của tài nguyên phía máy chủ được liên hệ qua phương thức GET

DATA – Một đối tượng có các thuộc tính đóng vai trò là cặp key/value được sử dụng để xây dựng chuỗi truy vấn được thêm vào URL hoặc chuỗi truy vấn được định dạng sẵn và được mã hóa

Callback – Một chức năng được gọi khi yêu cầu hoàn thành. Giá trị dữ liệu phản hồi dưới dạng chuỗi JSON được truyền dưới dạng tham số đầu tiên của request và tham số thứ hai là trạng thái.

Live Demo
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>

<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){

$.getJSON('/jquery/result.json', function(jd) {
$('#stage').html('<p> Name: ' + jd.name + '</p>');
$('#stage').append('<p>Age : ' + jd.age+ '</p>');
$('#stage').append('<p> Sex: ' + jd.sex+ '</p>');
});

});
});
</script>
</head>

<body>
<p>Click on the button to load result.json file −</p>

<div id = "stage" style = "background-color:#eee;">
STAGE
</div>

<input type = "button" id = "driver" value = "Load Data" />
</body>
</html>


Ở đây, phương thức tiện ích JQuery getJSON () khởi tạo một yêu cầu Ajax đến tệp URL result.json được chỉ định. Sau khi tải tệp này, tất cả nội dung sẽ được chuyển đến chức năng gọi lại, cuối cùng sẽ được đưa vào bên trong <div> được gắn thẻ với giai đoạn ID

3. Phương thức get(), post()

Cú pháp

$.get( url, [data], [callback], [type] )

$.post( url, [data], [callback], [type] )

Trong đó:

URL – Là chuỗi chưa URL để gửi request

Data – Tham số tùy chọn đại diện cho các cặp key/value sẽ được gửi đến máy chủ

Callback – Là một chức năng được gọi khi yêu cầu hoàn thành

Type – Tham số tùy chọn này đại diện cho loại dữ liệu được trả về cho hàm gọi lại: “xml”, “html”, “script”, “json”, “jsonp” hoặc “text”.

<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>

<script type = "text/javascript" language = "javascript">
$(document).ready(function() {

$("#driver").click(function(event){
$.get(
"result.php",
{ name: "Zara" },
function(data) {
$('#stage').html(data);
}
);
});

});
</script>
</head>

<body>
<p>Click on the button to load result.html file −</p>

<span id = "stage" style = "background-color:#cc0;">
STAGE
</span>

<div><input type = "button" id = "driver"
value = "Load Data" /></div>

</body>
</html>
<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>

<script type = "text/javascript" language = "javascript">
$(document).ready(function() {

$("#driver").click(function(event){

$.post(
"result.php",
{ name: "Zara" },
function(data) {
$('#stage').html(data);
}
);

});

});
</script>
</head>

<body>
<p>Click on the button to load result.html file −</p>

<div id = "stage" style = "background-color:cc0;">
STAGE
</div>

<input type = "button" id = "driver" value = "Load Data" />
</body>
</html>

4. Phương thức ajax()

Cú pháp

jQuery.ajax( options )

Trong đó:

Options: Là một tập hợp các cặp key/value cấu hình yêu cầu Ajax

<html>
<head>
<title>The jQuery Example</title>
<script type = "text/javascript"
src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>

<script type = "text/javascript" language = "javascript">
$(document).ready(function() {
$("#driver").click(function(event){
$.ajax( {
url:'result.html',
success:function(data) {
$('#stage').html(data);
}
});
});
});
</script>
</head>

<body>
<p>Click on the button to load result.html file:</p>

<div id = "stage" style = "background-color:blue;">
STAGE
</div>

<input type = "button" id = "driver" value = "Load Data" />
</body>
</html>

Leave a Reply

Your email address will not be published. Required fields are marked *