2011-11-13 39 views
7

Tôi đang cố gắng hiểu sự khác biệt giữa hàm $.getScript trong jQuery và $.get là gì.

Theo tài liệu: http://api.jquery.com/jQuery.get/http://api.jquery.com/jQuery.getScript/

Nó đã cho tôi cảm giác rằng với $.getScript bạn có thể gửi dữ liệu đến máy chủ (như với $.get chức năng) nhưng bạn không thể lấy dữ liệu từ máy chủ (bạn có thể sử dụng chức năng $.get). Nhưng nó hiển thị trong tài liệu của $.getScript, một số dòng bên dưới trong ví dụ đầu tiên, bạn có thể lấy dữ liệu với dòng console.log(data); //data returned.

Vậy sự khác biệt là gì? Có phải là với $.getScript bạn có thể gọi chỉ tập lệnh js và với $.get bạn có thể gọi bất kỳ tệp nào không? Những hạn chế/lợi ích của việc sử dụng một chức năng thay vì một chức năng khác là gì?

Trả lời

18

Cả hai đều là các phím tắt đến ajax gọi hàm. jQuery.get tương đương với:

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

Trong khi jQuery.getScript tương đương với:

$.ajax({ 
    url: url, 
    dataType: "script", 
    success: success 
}); 

Nó rất dễ dàng để thấy rằng jQuery.get có thể lấy bất cứ loại phản ứng (script, xml, json, kịch bản, hoặc html - theo mặc định html) và getScript bị giới hạn ở "tập lệnh".

Nói tóm lại, getScript được sử dụng để tự động thực hiện bên ngoài JavaScript, và get là chức năng mục đích chung thường được sử dụng để nhận dữ liệu theo params trôi qua. Tuy nhiên, cũng có thể chuyển thông số trong getScript (trong URL) nhưng sẽ không phổ biến vì hầu hết các tập lệnh đều tĩnh. Cuối cùng gọi lại trong getScript có thể được sử dụng để thực thi các câu lệnh cuối cùng sau khi tập lệnh của chúng tôi được thực hiện (ví dụ, sử dụng một số chức năng thư viện sau khi tải nó).

1

getScript được thiết kế để cho phép bạn tải tập lệnh. Khi bạn chắp thêm tập lệnh từ bên trong tập lệnh, tập lệnh sẽ tải tập lệnh không đồng bộ. Nếu bạn sử dụng getScript, bạn có thể đặt chức năng gọi lại khi tập lệnh khác đã chạy xong.

$.get là yêu cầu ajax cơ bản, bạn có thể làm những gì bạn muốn với nó. Nó hoàn toàn phụ thuộc vào bạn.

Các vấn đề liên quan