2012-02-21 33 views
9

Sto usando RequireJs per strutturare il mio codice JavaScript. Inoltre, sto usando un sacco di CSS3 e uso "Modernizr w/YepNope" + x numero di polyfill css3.Devo usare Modernizrjs + YepNopejs + Requirejs nella stessa pagina?

Capisco "Modernizr w/YepNope" e RequireJs sono entrambi caricatori di risorse. Dal momento che entrambi sono caricatori di risorse, è una cattiva idea utilizzarli entrambi nello stesso progetto?

Quindi, in pratica sto chiedendo, è una cattiva idea di utilizzare:

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

Nella stessa pagina ?

+3

Tornando a questa domanda un anno dopo posso dire che non uso più requirejs per le versioni di produzione più. Compilo i moduli requirejs in 1 file e uso almond.js come sostituto leggero per i moduli amd. –

risposta

4

Finché non si caricano moduli RequireJS via YepNope è ok per utilizzare entrambi. In caso contrario, si potrebbe riscontrare questo problema in base al doc RequireJS: http://requirejs.org/docs/errors.html#mismatch

E dal momento che si carica roba fuori RequireJS, vale a dire un polyfill API, l'unico modo in cui i moduli potrebbero utilizzare quelle polyfills sarebbe quello di rendere l'iniziale require() chiamata entro il complete() callback di YepNope. Ma IMHO diventa un po 'goffo ...

+0

Questo tipo di risposta alla mia domanda. Mi stavo chiedendo se il suo sovraccarico di avere 2 caricatori di risorse in 1 pagina .. dovrei combinare yepnope con requirejs e basta ritagliare modernizr? –

+0

Penso che quello che volevi dire è tagliare fuori yepnope, mantenendo Modernizr per il rilevamento della capacità e usare RequireJS per il caricamento degli script. – sylvain

+0

Continua ... Non vedo alcun problema nell'usarli entrambi, anche nelle prestazioni dal momento che sono entrambi asincroni. Tuttavia, se non hai bisogno della risoluzione delle dipendenze di RequireJS, se fossi in te lo farei cadere e mantenere YepNope – sylvain

3

Riepilogo: Respond.js, (che è ottimo con jQuery Mobile), si basa su query media css3, quindi se il polyfill è tutto ciò di cui hai bisogno, probabilmente non hai bisogno di caricatori di risorse.

Non riesco a parlare per YepNopejs, ma poiché respond.js è elencato in Modernizer, sembra ridondante.

Modernizzatore, se utilizzato, deve determinare se è stato caricato o meno answer.js.

Modernizer carica in modo condizionale gli script, compresi respond.js, sul lato client in base alle funzionalità rilevate. script supportati (che attualmente non includere YepNope) a

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

+0

Respond.js è un polyfill che Modernizr userebbe. E sto pensando che YepNope sia incluso in Modernizr. Quindi, la mia domanda non riguarda un polyfill in particolare, ma va bene usare modernizr e requirejs insieme. –

+0

Non vedo perché no - lo scenario peggiore è che require.js viene caricato in memoria due volte. – Cymbals

+3

Piatti: stai confondendo RequireJS con respond.js (modulo loader/gestore delle dipendenze vs polyfill della query multimediale)? – WebSeed