2013-03-27 29 views
8

RequireJS cho phép một tệp tải thư viện từ CDN. Trong trường hợp CDN bị hỏng, người dùng cũng có thể có tùy chọn sao lưu nơi tệp có thể được đặt ở một nơi khác (trong trường hợp này, chúng tôi giả định nó nằm cục bộ). Điều này được thực hiện trong đối tượng đường dẫn. Ví dụ, để tải JQuery từ một CDN và sau đó tại địa phương nếu CDN là xuống, làm điều này:Sử dụng CDN với trình tối ưu hóa RequireJS

paths : { 
    jquery : [ 
     'https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min', 
     'lib/jquery', 
    ]} 

Ví dụ trên đầu tiên sẽ cố gắng tìm truy vấn từ CDN, sau đó từ lib/jquery.

Câu hỏi Tôi có ấn tượng rằng khi sử dụng requirejs optimizer, mọi thứ được minified làm cho khó hiểu vào một tập tin lớn. Tùy chọn sao lưu sẽ hoạt động như thế nào trong trình tối ưu hóa? Nó sẽ được bao gồm trong tập tin được rút gọn? Nếu vậy, thì hoàn toàn không có lợi thế khi sử dụng CDN. Nhưng nếu tùy chọn dự phòng không được bao gồm trong phiên bản được tối ưu hóa, thì mã tối ưu hóa sẽ đối phó như thế nào nếu CDN giảm?

Cảm ơn bạn đã trả lời trước.

Trả lời

3

Bạn có thể có các cài đặt cấu hình khác nhau cho trang web thông thường của mình so với những gì bạn sử dụng để nạp trình tối ưu hóa, vì vậy trong trường hợp này, bạn sẽ sử dụng cấu hình "trống" trong phiên bản trình tối ưu hóa của mình để không bao gồm jQuery trong kết hợp/phiên bản minified:

paths: { 
    jquery: "empty:" 
} 

Xem tài liệu để biết thêm chi tiết: http://requirejs.org/docs/optimization.html#empty

+2

Yeah, tôi biết về vấn đề này, nhưng sau đó việc sử dụng rằng "tùy chọn sao lưu" là gì. Tôi có nghĩa là, mã này sẽ được sử dụng trong sản xuất nhiều hơn trong thử nghiệm. Dường như với tôi rằng tùy chọn Sao lưu hoàn toàn vô dụng bởi vì ai sử dụng JavaScript không được tối ưu hóa. –

+0

Nếu chưa được tối ưu hóa, bạn có nghĩa là không kết hợp với các mô-đun khác, thì có bạn có một điểm tốt. Nhưng không có gì nói rằng tệp sao lưu của bạn không thể được rút gọn. Ngoài ra, bạn sẽ mong đợi rằng khi sử dụng một CDN nó sẽ được nạp thành công một tỷ lệ phần trăm cao của thời gian. – explunit

+2

Cảm ơn, bạn đã trả lời câu hỏi của tôi trong nhận xét cuối cùng này. Bởi unoptimised, tôi không có nghĩa là không kết hợp. Tôi không biết tại sao tùy chọn này lại tồn tại. Sẽ rất tuyệt nếu tùy chọn sao lưu này được tải không đồng bộ nếu CDN không thành công, nhưng có thể khó đạt được với AMD. James Burke, nếu bạn đang đọc cái này (cơ hội là gì!), Bạn có thể nghĩ về điều này không. –

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