2012-02-21 21 views
9

Tôi đang sử dụng RequireJs để cấu trúc mã JavaScript của mình. Ngoài ra, tôi đang sử dụng rất nhiều CSS3 và tôi sử dụng "Modernizr w/YepNope" + x số lượng css3 polyfills.Tôi có nên sử dụng Modernizrjs + YepNopejs + Requirejs trong cùng một trang không?

Tôi hiểu "Modernizr w/YepNope" và RequireJs là cả Trình tải tài nguyên. Vì chúng là cả hai trình tải tài nguyên nên có nên sử dụng cả hai trong cùng một dự án không?

Vì vậy, về cơ bản tôi hỏi, nó là một ý tưởng tồi để sử dụng:

  • Require.js
  • Modernizr.js w/YepNope.js

Trong cùng một trang ?

+3

Quay lại câu hỏi này một năm sau đó tôi có thể nói rằng tôi không sử dụng requirejs cho bản phát hành sản phẩm nữa. Tôi biên dịch các mô-đun requirejs thành 1 tệp và sử dụng almond.js làm phần thay thế nhẹ cho các mô-đun amd. –

Trả lời

4

Chừng nào bạn không tải RequireJS module qua YepNope nó là ok để sử dụng cả hai. Nếu không, bạn có thể gặp phải vấn đề này theo RequireJS doc: http://requirejs.org/docs/errors.html#mismatch

Và kể từ khi bạn tải thứ bên ngoài RequireJS, tức là một polyfill API, cách duy nhất các module của bạn có thể sử dụng những polyfills sẽ được thực hiện ban đầu require() cuộc gọi trong complete() gọi lại của YepNope. Nhưng IMHO nó có một chút clunky ...

+0

Loại câu trả lời này là câu hỏi của tôi. Tôi chỉ tự hỏi nếu quá tải của nó để có 2 bộ nạp tài nguyên trong 1 trang .. Tôi có nên kết hợp yepnope với requirejs và chỉ cần cắt ra modernizr? –

+0

Tôi nghĩ những gì bạn có nghĩa là cắt ra yepnope, giữ Modernizr để phát hiện khả năng và sử dụng RequireJS để tải tập lệnh. – sylvain

+0

Tiếp theo .... Tôi không thấy bất kỳ vấn đề nào khi sử dụng cả hai, ngay cả hiệu suất khôn ngoan vì chúng đều không đồng bộ. Tuy nhiên nếu bạn không cần độ phân giải phụ thuộc RequireJS, nếu tôi là bạn tôi sẽ thả nó và giữ YepNope – sylvain

3

Tóm tắt: Respond.js, (tuyệt vời với jQuery Mobile), dựa trên các truy vấn phương tiện css3, vì vậy nếu polyfills là tất cả những gì bạn cần, có thể bạn không cần bộ tải tài nguyên.

Tôi không thể nói cho YepNopejs, nhưng vì response.js được liệt kê trong Trình hiện đại hóa, có vẻ như không cần thiết.

Trình hiện đại hóa, nếu được sử dụng, nên xác định xem tệp respond.js có được tải hay không.

Trình hiện đại sẽ có điều kiện tải các tập lệnh, bao gồm respond.js, phía máy khách dựa trên tính năng phát hiện. kịch bản được hỗ trợ (mà hiện không bao gồm YepNope) tại

https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

+0

Respond.js là một polyfill mà Modernizr sẽ sử dụng. Và tôi nghĩ rằng YepNope được bao gồm trong Modernizr. Vì vậy, câu hỏi của tôi không phải là về một polyfill cụ thể nhưng là nó alright để sử dụng modernizr và requirejs với nhau. –

+0

Tôi không hiểu tại sao không - trường hợp xấu nhất là require.js được tải vào bộ nhớ hai lần. – Cymbals

+3

Cymbals: bạn có đang nhầm lẫn với RequireJS với response.js (trình quản lý phụ thuộc/trình quản lý phụ thuộc so với truy vấn đa phương tiện) không? – WebSeed

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