2012-01-03 19 views
7

Tôi đã sử dụng mã sau để tải JQuery trong tất cả các dự án của tôi. Tôi nắm lấy nó từ http://html5boilerplate.com/. Có sự rối loạn rộng rãi của kỹ thuật này here.Sử dụng mã của Html5boilerplate để tải JQuery rất chậm khi chạy cục bộ

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

Mã này hoạt động tuyệt vời và có vẻ khá darn nhanh chóng một khi tôi đã đặt nó lên trên interwebs, nhưng khi tôi mở tập tin .html tôi tại địa phương phải mất ~ 10 giây cho mỗi refresh. Nói chung tôi nhận được chán và thay đổi mã như sau:

<!-- uncomment when going live 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');</script>--> 

<!-- remove following line when going live --> 
<script src="jquery-1.7.1.min.js"></script> 

Tôi có thiếu điều gì đó hiển nhiên ở đây không? Tôi cảm thấy như tôi không nên nhận được thời gian tải siêu chậm, nhưng nó tự giải quyết khi bình luận ra những dòng.

Trả lời

11

tôi đoán rằng bạn đang không phục vụ HTML thông qua một máy chủ web.

Các // tiền tố trên url chỉ ra rằng nó nên sử dụng các giao thức tương tự như các tài nguyên hiện tại (thường là http hoặc https)

Vì bạn đang không phục vụ thông qua http và thay vào đó thông qua một tập tin, nó đang cố gắng tìm kiếm nó trên hệ thống tệp cục bộ của bạn, cuối cùng là hết thời gian.

Tab mạng trên Chrome thanh tra cho thấy nó cố gắng để tải sau cho tôi:

file: //ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min. js
file: /// C:/Users/[Tên đăng nhập của tôi] /Documents/jquery-1.7.1.min.js

Nó sẽ cố gắng để tải những thời điểm và hệ thống tập tin (hoặc có thể trình duyệt) cuối cùng sẽ hết thời gian chờ. Một cách thích hợp là để phục vụ nó thông qua một máy chủ web, hoặc IIS nếu bạn đang trên Windows hoặc Apache nếu bạn đang trên Linux/Mac (Apache cũng hoạt động trong Windows, nhưng IIS có công cụ giao diện người dùng tốt hơn)

+0

phỏng đoán của bạn là chính xác. –

+0

Tôi cho rằng chạy nó thông qua XAMPP là giải pháp tôi đang tìm kiếm, tôi sẽ thử nó ngay bây giờ, nhưng điều darn đã phá vỡ bằng cách nào đó ;-) phải cung cấp cho nó một cài đặt lại khi tôi có cơ hội. –

+0

@ZachL. nếu bạn phục vụ tệp thông qua máy chủ web thay vì chỉ mở tệp, nó sẽ hoạt động. – Davy8

1

dòng này:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

nỗ lực tìm kiếm jQuery trong hệ thống tập tin của bạn, có nghĩa là nó sẽ mất một thời gian để thất bại. Trong khi xem tab Mạng của bảng điều khiển dành cho nhà phát triển trong Google Chrome, nó cố gắng tìm tệp trong file://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js. Sau đó, khi không tìm được tệp, tệp tải jQuery (và tìm thành công tệp) bằng dòng tiếp theo:

<script>window.jQuery || document.write('<script src="jquery-1.7.1.min.js"><\/script>');

để khắc phục vấn đề này, thêm https: đến src của thẻ script của bạn, như vậy:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

+0

Điều đó có vẻ như nó sẽ làm việc, nhưng điều này sẽ đánh bại các điểm của phương pháp tiếp cận bất khả tri giao thức? –

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