2010-12-27 37 views
5

Tôi có thể sử dụng JavaScript để kiểm tra xem liệu JQuery đã được tải xuống (đã lưu vào bộ nhớ cache) trên trình duyệt web đích (người dùng) hay chưa? Ví dụ:Sử dụng javascript để kiểm tra xem CDN jQuery nào được lưu trữ trên máy khách

If (JQuery-from-Microsoft-CDN-downloaded) 
    Then use http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js 
Else if (JQuery-from-Google-APIs- downloaded) 
    Then use http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js 
Else if (JQuery-from-code.jquery.com- downloaded) 
    Then use http://code.jquery.com/jquery-1.4.4.min.js 
Else use jQuery from my own website. 

Phương rằng việc sử dụng khả năng của javascript để kiểm tra xem một trong số họ sẽ được tải về trên mục tiêu tài (Web Browser), nếu không thì sử dụng jQuery từ trang web của riêng tôi bằng cách khác nếu đúng thì sử dụng phiên bản đó của JQuery được tải xuống trên người dùng đích.

+2

Câu hỏi thú vị, nhưng tôi không nghĩ rằng điều này là có thể thout thực sự tải các thư viện. Mặc dù, nó có thể là doable bằng cách sử dụng một cuộc gọi Ajax và kiểm tra xem đó trả về một '304 không sửa đổi' .... Không chắc chắn cho dù điều này là thực tế mặc dù. –

+0

Làm cách nào để người dùng "tải xuống" nội dung nào đó trên trình duyệt mục tiêu? –

+0

@Luca ông có nghĩa là liệu các thư viện trong câu hỏi đã được lưu trữ –

Trả lời

4

Bạn không thể làm điều này, trường hợp khác trong đó same-origin policy ngăn mọi cơ chế thực hiện việc này. Nếu bạn nghĩ về nó, nó có ý nghĩa ... bất kỳ cơ chế nào bạn có thể sử dụng để thực hiện điều này, bạn có thể cũng sử dụng để tìm ra trang web mà ai đó đã truy cập bằng cách xem tệp nào họ đã lưu trong bộ nhớ cache.

+0

Ý tưởng của tôi là sử dụng sức mạnh của javascript (của trình duyệt web) để sử dụng các librares được lưu trong bộ nhớ cache (theo lựa chọn động) –

+3

@Hazro - Tôi hiểu ý tưởng/mục tiêu của bạn , nhưng nó không thể ... nó sẽ là một sự vi phạm quyền riêng tư nghiêm trọng nếu một cái gì đó như thế này được cho phép. Thật không may là không có cách chung chung để làm điều này mà sẽ không * cũng * cho phép nó được sử dụng cho mục đích độc hại. –

0

Có vài cách để kiểm tra nếu jQuery được nạp

var isLoaded = (jQuery) ? true : false; 

hoặc

var isLoaded = (typeof jQuery == 'undefined') ? false : true; 

Nếu kịch bản của bạn được nạp bên trong cùng một tài liệu mà jQuery bao gồm bạn có thể phân tích cú pháp DOM và kiểm tra nếu một trong các Thẻ SCRIPT có chứa liên kết đến bất kỳ số nào của CDN

var jQueryVersion = isLoaded ? jQuery.fn.jquery : false; 
+0

jQuery với số phiên bản? –

+0

có thể là – Nazariy

+0

Điều này sẽ chỉ cho bạn biết bạn đã tải xuống phiên bản nào từ url nguồn của thẻ tập lệnh - không phải những gì đã được lưu trong bộ nhớ cache trước đó từ các lượt xem trang khác – HorusKol

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