Có một vài vấn đề ở đây. Thứ nhất, phương thức tải async mà bạn đã chỉ định:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load('jquery', '1.3.1');
google.setOnLoadCallback(function() {
// do stuff
});
</script>
có một vài vấn đề Thẻ script tạm dừng tải trang trong khi chúng được truy xuất (nếu cần). Bây giờ nếu chúng tải chậm thì điều này là xấu nhưng jQuery thì nhỏ. Vấn đề thực sự với phương pháp trên là vì tải jquery.js xảy ra độc lập cho nhiều trang, nên chúng sẽ hoàn tất tải và kết xuất trước khi jquery tải, do đó, bất kỳ kiểu jquery nào bạn thực hiện sẽ là một thay đổi rõ ràng cho người dùng .
Một cách khác là:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>
Hãy thử một số ví dụ đơn giản như, có một bảng đơn giản và thay đổi nền của các ô thành màu vàng với phương thức setOnLoadCallback () so với $ (tài liệu). Đã () với tải tĩnh jquery.min.js. Phương pháp thứ hai sẽ không có nhấp nháy đáng chú ý. Ý chí đầu tiên. Cá nhân tôi nghĩ rằng đó không phải là một trải nghiệm người dùng tốt.
Như một ví dụ chạy này:
<html>
<head>
<title>Layout</title>
<style type="text/css">
.odd { background-color: yellow; }
</style>
</head>
<body>
<table>
<tr><th>One</th><th>Two</th></tr>
<tr><td>Three</td><td>Four</td></tr>
<tr><td>Five</td><td>Six</td></tr>
<tr><td>Seven</td><td>Nine</td></tr>
<tr><td>Nine</td><td>Ten</td></tr>
</table>
<script src="http://www.google.com/jsapi"></script>
<script>
google.load("jquery", "1.3.1");
google.setOnLoadCallback(function() {
$(function() {
$("tr:odd").addClass("odd");
});
});
</script>
</body>
</html>
Bạn (nên) thấy bảng xuất hiện và sau đó các hàng chuyển sang màu vàng.
Vấn đề thứ hai với phương thức google.load () là nó chỉ lưu trữ một phạm vi tệp giới hạn. Đây là một vấn đề đối với jquery vì nó phụ thuộc rất nhiều vào trình cắm thêm. Nếu bạn thử và bao gồm một plugin jquery với một <script src="...">
thẻ và google.load()
trình cắm có thể sẽ thất bại với các thông báo "jQuery không được xác định" vì nó chưa được tải. Tôi không thực sự thấy một cách xung quanh này.
Vấn đề thứ ba (với một trong hai phương pháp) là chúng là một tải bên ngoài. Giả sử bạn có một số plugin và mã Javascript của riêng bạn, bạn có tối thiểu hai yêu cầu bên ngoài để tải Javascript của mình. Có lẽ bạn nên lấy jquery, tất cả các plugin có liên quan và mã của riêng bạn và đặt nó vào một tệp được rút gọn.
Từ API Ajax Libraries bạn nên sử dụng của Google cho Hosting? :
Để tải thời gian, bạn thực sự đang tải hai tập lệnh - tập lệnh jsapi và tập lệnh mootools (phiên bản nén từ phía trên). Vì vậy, đó là hai kết nối, chứ không phải một. Theo kinh nghiệm của tôi, tôi thấy rằng thời gian tải thực sự chậm hơn 2-3 lần so với tải từ máy chủ chia sẻ cá nhân của riêng tôi, mặc dù nó đến từ Google và phiên bản tệp nén của tôi lớn hơn một vài lần so với Google. Điều này, ngay cả sau khi tệp đã được tải và (có lẽ) được lưu trữ. Vì vậy, đối với tôi, vì băng thông không quan trọng lắm, sẽ không thành vấn đề.
Cuối cùng, bạn có vấn đề tiềm ẩn của một trình duyệt hoang tưởng gắn cờ yêu cầu như một số nỗ lực XSS. Đây thường không phải là sự cố với cài đặt mặc định nhưng trên các mạng công ty nơi người dùng có thể không kiểm soát được trình duyệt nào họ sử dụng chứ đừng nói đến cài đặt bảo mật mà bạn có thể gặp sự cố.
Vì vậy, cuối cùng tôi thực sự không thể thấy tôi sử dụng Google AJAX API cho jQuery ít nhất (các API "hoàn chỉnh" hơn là một câu chuyện khác nhau theo một số cách) ngoại trừ việc đăng các ví dụ ở đây.
src
cú pháp đơn giản hơn / an toàn hơn / nhanh hơn mà bạn sử dụng bây giờ không? Câu trả lời của bạn về cơ bản đã trở thành kinh điển và cả hai thay đổi sẽ giúp mọi người có được những gì họ đến một cách nhanh chóng.