2012-05-08 11 views
5

Ho la seguente struttura di cartelle:Come si usa RequireJS in un'applicazione .NET?

-> personalizzati

  • classifiche
    • ... file JS
  • migliorare
    • ... file JS
    • ... file generali JS

-> lib

  • jquery
  • jquery.ui

jquery-1.7.2.js
requirejs-1.0.7.js
order.js

Ho un'applicazione .NET con un sacco di file di controllo ascx che fanno riferimento a file JS in modo tradizionale richiamando un file JS all'interno di un tag script e quindi chiamando qualche funzione da quel file.

domanda è come I (o posso) implementare dovrebbero richiedere JS in modo che posso:

1) chiamare i file scorso il JS dopo tutto le immagini, CSS e HTML è stato caricato, e ...

2) utilizzare il concetto AMD di modulazione del codice

È importante sottolineare che all'interno di ciascun file aspx ci sono fino a 5 file ASCX e alcuni contengono controlli ASCX. Molti dei file ascx hanno incorporato JavaScript all'interno di essi e molte delle pagine .master hanno anche riferimenti ai file JavaScript.

Non riesco a modificare la struttura del sito Web (poiché il sito è piuttosto grande), quindi ho bisogno di trovare una soluzione.

Grazie

+0

Leggendo la tua domanda, posso dire che avrai molto lavoro se scegli di utilizzare requirejs. Requirejs è un ottimo strumento per le applicazioni web, ma non è vicino ad essere amichevole con un'applicazione non ben strutturata. – devundef

+0

Sto implementando requireJS in un'app .NET ora con grande successo, il duro lavoro è la conversione di tutte le pagine che chiamano javascript e la creazione di moduli per la chiamata tat se contiene una grande quantità di codice JS o, avvolgere il codice in una richiesta chiamata. in modo diretto ma sì assegnare del lavoro per convertire il sito. – quinton

+0

Aggiornamento sull'implementazione RequireJS: Con l'avvento di assegnare più codice client JS per il sito web select.bestinvest, requireJS è stato fantastico nell'imporre codice modulare piuttosto che un semplice approccio top down e mettere tutto in un unico file. Anche se c'è stata una grande mole di lavoro per convertire tutto il JS in esecuzione in e con RequireJS, ne è valsa la pena. – quinton

risposta

0

controllare questo progetto RequireJS .NET

+0

che è perfetto, poiché stiamo implementando (iniziando a implementare) un framework MVC per i progetti su cui stiamo costruendo. Ho già convertito tutto il codice che dobbiamo usare requirejs ma questo richiede un po 'di più e sarà utile. – quinton

0

Si chiama re-factoring ... v. Il processo a volte doloroso di riscrivere una soluzione in precedenza non-architettato in un uno ben architettato.

0

Questo è più di una risposta per chiamare "InvokeScript()" da un controllo browser Web .NET. Ma Google mi ha condotto qui e qualcuno potrebbe trovare utile questo.

In primo luogo, definire il nuovo modulo AMD come si farebbe normalmente.Mettere quello che chiami "InvokeScript()" con come una funzione all'interno di questo modulo:

define (... { 
    var mySpecialHandler = function() { 
     // do stuff 
    }; 
    return { 
     mySpecialHandler: mySpecialHandler 
    } 
}); 

Poi quando si arriva a usarlo, utilizzare lo spazio dei nomi globale che alla fine viene impostato quando il modulo viene caricato:

require(['app'], function (app) { 
    window.mySpecialHandler = app.mySpecialHandler; 
});