2012-02-21 7 views
9

Я использую RequireJs для структурирования кода JavaScript. Кроме того, я использую много CSS3, и я использую «Modernizr w/YepNope» + x число css3 polyfills.Должен ли я использовать Modernizrjs + YepNopejs + Requirejs на той же странице?

Я понимаю, что «Modernizr w/YepNope» и RequireJs являются Ресурсными загрузчиками. Поскольку они оба являются загрузчиками ресурсов, это плохая идея использовать оба из них в одном проекте?

Так, в основном я и спрашиваю, есть это плохая идея использовать:

  • Require.js
  • Modernizr.js ж/YepNope.js

В той же странице ?

+3

Возвращаясь к этому вопросу через год, я могу сказать, что больше не использую requirejs для выпуска продукции. Я компилирую модули requirejs в 1 файл и использую almond.js в качестве легкой замены для модулей amd. –

ответ

4

До тех пор, пока вы не загрузите RequireJS модулей через YepNope это нормально использовать оба. В противном случае вы можете столкнуться с данной проблемы в соответствии с RequireJS документа: http://requirejs.org/docs/errors.html#mismatch

А так как вы загрузили вещи вне RequireJS, т.е. API polyfill, единственным способом ваших модули могли бы использовать этот polyfills бы сделать первоначальный require() вызов в пределах complete() обратный вызов YepNope. Но IMHO это немного неуклюжие ...

+0

Этот вопрос отвечает на мой вопрос. Мне просто интересно, есть ли у его перегрузки 2 ресурса-загрузчика на 1 странице. Должен ли я комбинировать yepnope с requirejs и просто вырезать modernizr? –

+0

Я думаю, что вы имели в виду вырезать yepnope, поддерживая Modernizr для определения емкости и использования RequireJS для загрузки скриптов. – sylvain

+0

Cont'd .... Я не вижу проблем с использованием обоих, даже с точки зрения производительности, поскольку они оба асинхронны. Тем не менее, если вам не требуется требование зависимости от требований, если бы я был вами, я бы бросил его и сохранил YepNope – sylvain

3

Резюме: Respond.js (отлично работает с jQuery Mobile), основано на запросах css3 media, поэтому, если полиполны - это все, что вам нужно, вам, вероятно, не нужны «загрузчики ресурсов».

Я не могу говорить для YepNopejs, но так как response.js указан в Modernizer, он кажется излишним.

Модернизатор, если используется, должен определить, загружен ли ответ .js.

Модернизатор будет условно загружать сценарии, в том числе response.js, на стороне клиента на основе обнаружения функций. Поддерживаемые сценарии (которые в настоящее время не включают YepNope) в

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

+0

Respond.js - это полиполк, который будет использовать Modernizr. И я думаю, что YepNope включен в Modernizr. Итак, мой вопрос не в том, что касается полипол, в частности, но хорошо ли использовать modernizr и requirejs вместе. –

+0

Я не понимаю, почему нет - худший сценарий - require.js дважды загружается в память. – Cymbals

+3

Тарелки: вы вводите в заблуждение RequireJS с помощью response.js (менеджер загрузчика/менеджера зависимостей против полиса заполнения медиа)? – WebSeed