2013-09-07 23 views
7

Có thể có nguồn thay thế cho javascript trong HTML5 không? Ví dụ, tôi đang sử dụng jQuery, và có nó tại địa phương. Nhưng tôi được phép bao gồm thuộc tính alt để nếu điều đó không hoạt động, jQuery của Google sẽ tải?Bạn có được phép có nguồn thay thế cho tập lệnh không?

Nếu nó hoạt động, mã sẽ giống như thế này: <script src="enter your text here.js" alt="googlescode"></script>

+0

Có rất nhiều bộ tải kịch bản viết bằng JavaScript. Chúng ta sẽ giả sử bạn muốn có một giải pháp HTML tĩnh? –

+0

Chắc chắn, nhưng đó không phải là câu hỏi của tôi. – tjons

Trả lời

5

Nếu đó là jQuery, bạn có thể muốn xem this article.

Snippet:

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js"></script> 
<script> 
    if (typeof jQuery == 'undefined') { 
     document.write(unescape("%3Cscript src='/js/jquery-2.0.0.min.js' type='text/javascript'%3E%3C/script%3E")); 
    } 
</script> 
5

Vâng, bạn có thể làm điều đó. HTML5 Boilerplate có một ví dụ điển hình cho tải jQuery.

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.2.min.js"><\/script>')</script> 

Nhưng nó sử dụng nó theo cách khác. Nếu không thể tải tập lệnh từ google, tập lệnh sẽ quay lại tập lệnh cục bộ của bạn.

Bạn nên tải phiên bản CDN làm phiên bản thử đầu tiên, vì nó tải nhanh hơn phiên bản "cục bộ".

+0

Trên máy của tôi, tôi thấy rằng tải cục bộ nhanh hơn nhiều. – tjons

+4

Nếu bạn tải trên localhost, nó là tất nhiên nhanh hơn, nhưng không phải trong một môi trường sản xuất thực tế .. Bạn có thể đọc bài viết này giải thích những lợi ích của nó. http://encosia.com/3-reasons-why-you-should-let-google-host-jquery-for-you/ – Sebsemillia

1

Khi thực hiện chúng tôi nhận ra tất cả các câu trả lời trước đây có vấn đề phổ biến mà Chrome sẽ chặn chúng với kết nối chậm kể từ document.write là một đồng bộ chức năng. Vấn đề được thảo luận trong this post.

Giải pháp thường là sử dụng trình tải hiện đại hoặc biên dịch trước mã js.

Tuy nhiên, nếu trường hợp sử dụng của bạn vẫn yêu cầu phương pháp này, bạn cần sử dụng cuộc gọi không đồng bộ. Ví dụ minh họa là the way Google Analytics is loaded.

Về cơ bản, các mã trên chuyển thành:

<script>window.jQuery || (function(){ 
     // Create the DOM node 
     a=document.createElement('script'); 
     a.src="http://path-to-the-script.js"; 
     a.async=1; 
     // Find a node, and insert the script before it 
     m=document.getElementsByTagName('script')[0]; 
     m.parentNode.insertBefore(a,m); 
    })()</script> 
Các vấn đề liên quan