Re: ul

1 view
Skip to first unread message
Message has been deleted

Hien Mondesir

unread,
Jul 10, 2024, 5:23:07 AM7/10/24
to coapfersucep

I ended up just having a 'save' like method and called $.ajax within it. It gave me more control over it without the need to add a wrapper class as @brandgonesurfing suggested (although I absolutely love the idea :) As mentioned since I already had the collection.toJSON() method overridden all I landed up doing was using it in the ajax call...

Ajax trong JQuery (P5) S d ng toan b s c m nh c a Ajax


Download Zip https://urlcod.com/2yXH0O



The accepted answer is pretty good, but I can go one step further and give you code that will ensure the proper events are fired for your listeners while also allowing you to pass in option ajax event callbacks:

jQuery AjaxjQuery cung cấp một số phương thức để thực hiện các chức năng ajax. Chúng ta có thể yêu cầu các text, HTML, XMLJSON từ server sử dụng cả giao thức HTTP GETHTTP POST, chúng ta cũng có thể lấy dữ liệu từ bên ngoài trực tiếp vào trong phần tử được chọn.

Hàm $.ajax() của JQuery được sử dụng để thực hiện các request HTTP bất đồng bộ (async). Nó đã được thêm vào thư viện này từ rất lâu, tồn tại từ phiên bản 1.0. Ba hàm $.get(), $.post()$.load() có thể coi là một hàm $.ajax() với những thiết lập có sẵn. Sau đây là cú pháp tổng quát của hàm $.ajax():

Các bạn có thể nhìn vào ví dụ ở trên ở đây mình đã ghi rõ thuộc tính async là true và đây cũng là giá trị mặc định của $.ajax nếu bạn không chỉ định rõ. Ở đoạn code bên trong mình đã viết thử ajax để lấy thông tin của các quốc gia thông qua mã code và in kết quả ra log. Mình thấy khi mới tiếp cận với ajax cũng có một số bạn gặp lỗi ở đây và thắc mắc tại sao khi console.log như trong ví dụ thì bị lỗi listCountry undefined, nhưng cũng với đoạn code trên các bạn thử thay giá trị của thuộc tính async là false thử xem nhé .

Phần trên mình đã viết demo nhỏ thế mọi người thấy được cách xử dụng đồng bộ và bất đồng bộ một cách đơn giản. Còn tiếp theo mình sẽ nói qua một chút về bất đồng bộ và ajax đc thiết lập bất đồng bộ như nào.

Lý do vì sao mình nói ở trên là xử dụng ajax.done() từ phiên bản > 1.5, chính là vì $.ajax đã được họ thiết lập sẵn và áp dụng Deferred(), các bạn chỉ việc gọi callback() ra và dùng thôi .

Vậy là mình đã giới thiệu sơ qua cho mọi người thêm về đối tượng Deferred() rồi đó,ở đây mình chỉ giới thiệu cơ bản và bên trong nó còn rất nhiều các lựa chọn và cài đặt khác, các bạn có thể đọc tài liệu và áp dụng thêm ở -object/. Hy vọng các bạn có thể áp dụng tốt nó được vào các bài toán khác chứ không chỉ riêng ajax .

$.ajax() trả về XMLHttpRequest mà nó tạo. Trong hầu hết các trường hợp bạn không cần đối tượng đó để thao tác một cách trực tiếp, nhưng nó là có sẵn khi bạn cần bỏ dỡ Request đó.

Sau đây là ví dụ đơn giản minh họa cách sử dụng của phương thức jQuery.ajax(options) trong jQuery. Ở đây chúng ta sử dụng success handler để đặt HTML được trả về:

Lưu ý: đây là cấu trúc tôi thường dùng nhất mà thôi. Ngoài những thông số trên, hàm ajax() còn cung cấp nhiều thông số khác. Bạn có thể tham khảo thêm tại trang API Documentation của jQuery.

jQuery Ajax là một công cụ giúp thực hiện các yêu cầu AJAX trên trang web bằng jQuery, một thư viện JavaScript rất phổ biến được sử dụng để tương tác với HTML và CSS. Chúng giúp tạo ra các yêu cầu AJAX dễ dàng hơn bằng cách sử dụng các phương thức jQuery, như $.ajax(), $.get() và $.post().

Chú ý: Nếu bạn muốn sử dụng AJAX trong WordPress thì bắt buộc phải có khai báo action như trong đoạn JavaScript trên mình đã làm. Với giá trị của action là đoạn chuỗi gắn phía sau của hook wp_ajax_, ở đây cụ thể hơn mình đã khai báo action là sb_test_ajax thì hook bạn sử dụng phải là wp_ajax_sb_test_ajax.

Chú ý: Không giống như khi thực thi Ajax bên trong bảng điều khiển admin, khi bạn thực thi Ajax bên ngoài front-end thì bạn phải khai báo biến toàn cục để chứa url đến tập tin admin-ajax.php. Trừ trường hợp bạn có sử dụng các plugin liên quan đang sử dụng Ajax và các plugin này đã khai báo biến toàn cục ajaxurl.

Cả 2 trường hợp bạn thực thi Ajax bên trong back-end hoặc bên ngoài front-end đều lấy tập tin admin-ajax.php để xử lý. Do vậy, bạn phải cẩn thận khi sử dụng hàm kiểm tra is_admin.

Hầu hết các bạn cũng đều biết, AJAX giúp chúng ta tương tác với server một cách bất đồng bộ. jQuery hỗ trợ gửi AJAX requests bằng $.ajax() cùng với với các phương thức hỗ trợ như .get() hay .post().

Tại thời điểm mình viết bài này, hầu như khi nhắc đến ajax là các bạn lại nghĩ ngay đến jquery và các bạn cũng thường biết jquery được phát triển trên javascript. Vậy nên hôm nay mình sẽ giới thiệu với mọi người về ajax trong javascript (không phải jquery nhe).

-Như vậy phần này mình đã giới thiệu xong đến mọi người về ajax trong javascript rồi. Bài này bình thường sẽ không có gì quan trọng nếu như bạn sử dụng được jquery, nhưng trong một số trường hợp mà chúng ta không sử dụng được jquery thì với biết được tác dụng của nó.

Hàm $.ajax() của JQuery dùng để thực hiện các yêu cầu HTTP bất đồng bộ. Hàm này đã tồn tại từ phiên bản 1.0. Ngoài ra, 3 hàm $.get(), $.post(), $.load() cũng được xem là một hình thức của hàm $.ajax() có sẵn các thiết lập. Dưới đây là cấu trúc cú pháp của hàm $.ajax():

Với dạng phương thức hàm $.ajax() thứ 2, tham số Option chỉ định URL. Hoặc URL cũng có thể được lược bỏ khi request gửi đến đường dẫn của trang hiện tại.

Nếu bạn chưa làm việc với ajax trong trang của mình, trước khi đọc bài viết này bạn có thể xem qua cách hoạt động những khái niệm trên Wikipedia giải thích về ajax. Một số hướng dẫn khác bạn cũng nên tham khảo ví dụ:

Tuy nhiên kiến thức thuần gốc về ajax hiếm khi bạn sử dụng, viết nhiều code trong khi ajax jquery thâu tóm chỉ một dòng cũng thực hiện một công việc tương tự.

Bản chất ajax là kết hợp của mã HTML, CSS và javascript cho phép bạn gửi dữ liệu đến script và tại nơi đó sẽ nhận và sử lý dữ liệu trả nội dung quay trở về cho người gửi, từ đó bạn không cần load lại trang mà có thể thay đổi dữ liệu động.

Bài viết này, chúng ta sẽ cùng nhau tìm hiểu Ajax trong Javascript và đặc biệt là Ajax jquery, thư viện đã giúp Ajax trở nên gần gũi hơn bao giờ hết.

Có thể bạn quen thuộc với jQuery và phương thức $.ajax: bạn truyền vào một đối tượng chọn lựa: url, type và thuộc tính success là bắt buộc. Thuộc tính data là đối tượng formdata của chúng ta. Chú ý những thuộc tính processData và contentType. Dựa theo tài liệu của jQuery, processData là true mặc định, và sẽ xử lý và chuyển đổi dữ liệu thành một chuỗi query. Chúng ta không muốn làm điều đó, vì thế chúng ta xét nó về false. Chúng ta cũng thiết lập contentType sang false để chắc rằng data đưa về máy chủ giống như chúng ta mong đợi.

Trong đoạn mã trên, chúng ta đang tạo một request Ajax bằng cách sử dụng phương thức $.ajax(). Đối số url xác định URL của tài nguyên mà chúng ta muốn tải lên. Đối số success xác định một hàm được thực thi khi request được gửi đi và trả về kết quả thành công. Trong ví dụ này, kết quả trả về là nội dung của tệp demo_test.txt, và chúng ta đang đặt nội dung đó vào một thẻ div có ID là div1.

aa06259810
Reply all
Reply to author
Forward
0 new messages