2012-05-08 3 views
5

Ich habe die folgende Ordnerstruktur:Wie verwenden Sie RequireJS in einer .NET-Anwendung?

-> individuelle

  • Charts
    • ... JS-Dateien
  • verbessern
    • ... JS-Dateien
  • allgemeine
    • ... JS-Dateien

-> lib

  • jquery
  • jquery.ui

jquery-1.7.2.js
requirejs-1.0.7.js

Ich habe eine .NET-Anwendung mit vielen ascx-Steuerdateien, die auf JS-Dateien auf die traditionelle Weise verweisen, indem Sie eine JS-Datei innerhalb eines Skript-Tags aufrufen und dann eine Funktion aus dieser Datei aufrufen.

Frage ist, wie soll ich (oder kann ich) implementieren JS erforderlich, so dass ich kann:

1) rufen Sie die JS-Dateien Letzte nachdem alle Bilder, CSS und HTML geladen wurde, und ...

2) verwenden, um das AMD-Konzept

Es ist wichtig, den Code von modulising ist innerhalb innerhalb jeder aspx Datei dort bis zu 5 ascx Dateien sind und einige haben ascx Kontrollen enthielten darauf hin, dass. Viele der Ascx-Dateien enthalten eingebettetes JavaScript und viele .master-Seiten enthalten auch JavaScript-Dateiverweise.

Ich kann die Struktur der Website nicht ändern (da die Site ziemlich groß ist), also muss ich eine Lösung finden.

Dank

+0

Lesen Ihrer Frage kann ich Ihnen sagen wird eine Menge Arbeit haben, wenn Sie sich dafür entscheiden requirejs zu verwenden. Requirejs ein sehr gutes Werkzeug für Web-Anwendungen, aber es ist nicht in der Nähe mit nicht gut strukturierter-Anwendung, freundlich zu sein. – devundef

+0

Ich requireJS in eine .NET-App jetzt mit großem Erfolg, die harte Arbeit ist die Konvertierung alle Seiten implementieren, Javascript und entweder die Schaffung Module for tat Anruf ruft, wenn es eine große Menge an JS-Code oder wickeln Sie den Code in eine hält erfordern Anruf. geradlinig aber ja allot von Arbeit, um die Website zu konvertieren. – quinton

+0

-Update auf RequireJS Umsetzung: Mit dem Aufkommen von mehr Client-Seite JS schwere Codierung zuzuteilen, die für die select.bestinvest Website erforderlich war requireJS genial bei der Durchsetzung der modularen Codierung nicht nur eine Top-down-Ansatz und alle in einer Datei setzen. Auch wenn es eine riesige Menge an Arbeit war die ganze JS konvertiert in und mit RequireJS zu laufen, es war die Mühe wert. – quinton

Antwort

0

prüfen dieses Projekt RequireJS .NET

+0

, die perfekt ist, wie wir implementieren (beginnend zu implementieren) ein MVC-Framework für Projekte, die wir bauen auf. Ich habe bereits den ganzen Code, den wir benutzen müssen, konvertiert, aber das nimmt es ein wenig weiter und wird von Nutzen sein. – quinton

0

Es Refactoring genannt ... v. Die manchmal schmerzhafter Prozess zur Herstellung eines vorher un-architected Lösung in eine gut architected eine neu zu schreiben.

0

Dies ist eher eine Antwort ist für "InvokeScript()" von einer .NET-Web-Browser-Steuerung aufrufen. Aber Google hat mich hierher geführt und jemand könnte das nützlich finden.

Definieren Sie zunächst Ihr neues AMD-Modul wie gewohnt.Setzen Sie, was Sie „InvokeScript()“ mit als Funktion in diesem Modul aufrufen:

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

Dann, wenn Sie kommen, es zu benutzen, verwenden Sie den globalen Namensraum, die schließlich wird gesetzt, wenn das Modul geladen wird:

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