2012-03-26 43 views
9

Tôi cần truy xuất một trang đơn giản và sử dụng dữ liệu mà nó trả về. Có bất kỳ sự khác biệt nào giữa $.post()$.get() tôi có nên sử dụng sự khác biệt này không?

Tôi không có kế hoạch gửi bất kỳ dữ liệu nào theo yêu cầu.

+0

Dưới đây là một cách nhanh chóng xuống trong những phương pháp jQuery AJAX sử dụng nhiều nhất: http://www.catchmyfame.com/2012/03/05/whats-the- best-jquery-method-for-retrieving-ajax-data/ – j08691

Trả lời

12

Nếu bạn chỉ muốn truy xuất nội dung từ tài liệu html, hãy sử dụng $.load() để thay thế.

Bạn thậm chí có thể lấy một phần thông tin từ tài liệu đó bằng cách cung cấp một bộ chọn thêm:

$('#result').load('ajax/test.html'); 
$('#result').load('ajax/test.html #justThisContainerPlease'); 

thấy http://api.jquery.com/load/


Để trả lời câu hỏi của bạn tổng quát hơn, không có sự khác biệt lớn của nó cho dù bạn đang sử dụng yêu cầu POST hoặc GET cho máy chủ, tùy thuộc vào lượng dữ liệu bạn cần gửi. Thông thường, yêu cầu GET được giới hạn trong năm 2083 (vì IE giới hạn chuỗi truy vấn). Vì vậy, nếu bạn có nhiều dữ liệu để gửi, bạn nên sử dụng yêu cầu POST.

Về mặt kỹ thuật, yêu cầu GET sẽ nhanh hơn một chút. Bởi vì trong nội bộ chỉ có một gói được gửi thay vì ít nhất hai (một cho tiêu đề và một cho cơ thể truyền). Nhưng đó thực sự là tối ưu hóa hiệu suất cao.

+0

+1 và được chấp nhận vì đoạn cuối cùng. – qwertymk

+0

đọc http://thenetworkguy.typepad.com/nau/2008/08/http-post-haste.html để xây dựng đoạn cuối – mbx

0

Đi tới $.get() vì bạn không cần đăng bất kỳ dữ liệu nào hoặc $.load() nếu bạn muốn hiển thị trang trong trình duyệt (bạn muốn làm mới một phần của trang).

+0

Có lý do nào để sử dụng $ .get trên $ .post không? – qwertymk

+0

Có nhiều ngữ nghĩa hơn - POST có nghĩa là 'cập nhật tài nguyên trên máy chủ', GET có nghĩa là 'truy xuất tài nguyên từ máy chủ'. –

2

Đây là một hình ảnh đẹp article giải thích sự khác biệt giữa HTTP POST và HTTP GET. Bản thân tôi thích sử dụng $.ajax(); và tinh chỉnh nó cho phù hợp.

1

Nếu bạn không gửi dữ liệu, sau đó bạn thực sự nên sử dụng $.load();

$.get();$.post() thường nộp dữ liệu đến một máy chủ, do đó bạn không cần đến chúng trong bối cảnh này. Có sự khác biệt lớn giữa dữ liệu POST và GET, bạn nên dành chút thời gian để read up on them.

0

Sự khác biệt chính giữa chúng là với POST bạn chuyển một bộ sưu tập dữ liệu và với GET bạn chuyển dữ liệu trong URL. Nếu bạn đang chuyển rất nhiều dữ liệu tôi muốn đề xuất POST. Nếu bạn chỉ đang gọi URL cho một phản hồi thì hãy sử dụng get.

Để hiểu đầy đủ, hãy kiểm tra tài liệu jQuery của từng tài liệu.

GET: http://api.jquery.com/jQuery.get/

POST: http://api.jquery.com/jQuery.post/