Ich benutze ASP.NET MVC seit ungefähr sechs Monaten und habe mir das Nerd-Dinner-Beispiel dieser Microsoft-Leute angesehen. Eine Sache, die mir aufgefallen ist, als sie es AJAX ermöglichten, für ein Abendessen zu antworten, sind die JavaScript-Referenzen im User Control, die für das RSVPing verwendet werden (DATEI: RSVPStatus.ascx)
%Vor%Das scheint mir nicht richtig zu sein, da es eine sehr gute Chance gibt, dass ich dieselben Bibliotheken woanders verwenden würde, wie die Anmeldeauthentifizierung. Außerdem, wenn ich Skriptversionen ändere, muss ich alle Verweise auf die Bibliotheken suchen.
Also frage ich, ob mein Denken korrekt ist und diese Referenzen eigentlich an einem zentraleren Ort wie der Masterseite sein sollten?
Bitte lassen Sie mich wissen, was die beste Praxis für dieses ist und Vor- und Nachteile, wenn überhaupt.
Ich würde definitiv davon abraten, sie genau für den von Ihnen erwähnten Grund in Teiltöne zu legen. Es besteht eine hohe Wahrscheinlichkeit, dass eine Ansicht zwei Teiltöne einzieht, die beide auf dieselbe js-Datei verweisen. Sie haben auch den Leistungseinbruch beim Laden von js, bevor Sie den Rest des html laden.
Ich kenne die Best Practice nicht, aber ich entscheide mich dafür, alle gängigen js-Dateien in die Masterpage aufzunehmen und dann einen separaten ContentPlaceHolder für einige zusätzliche js-Dateien zu definieren, die für eine bestimmte oder eine kleine Anzahl von Ansichten spezifisch sind.
Hier ist eine Beispielmasterseite - sie ist ziemlich selbsterklärend.
%Vor%Html.CSSBlock & amp; Html.JSBlock sind natürlich meine eigenen Erweiterungen, aber wieder, sie sind selbsterklärend in dem, was sie tun.
Dann in einer SignUp.aspx Ansicht würde ich
haben %Vor%HTHs, Charles
Ps. Ich würde Andrew zustimmen, wenn ich sage, dass alle gängigen JS, die direkt in der Masterseite definiert sind, verkettet und minimiert werden sollten.
BEARBEITEN: Meine Implementierung von .JSBlock (a, b) wie angefordert
%Vor%Und dann, wo die Magie passiert ...
%Vor%In meiner Website, www.trailbehind.com, haben wir eine Reihe von Javascript-Dateien, die auf allen Seiten gehören. Und dann enthalten einige Seiten zusätzliche Bibliotheken.
Für die JS-Dateien, die alle Seiten verwenden (es gibt ein paar Dutzend Dateien), verketten wir sie und minimieren sie beim Build.
In unserer Einstellungsdatei befindet sich ein Flag, das angibt, ob das verkettete JavaScript oder die separaten Dateien beim Build verwendet werden sollen. Dies ist kritisch, so dass Sie das Javascript auf dem Entwickler debuggen können, aber verwenden Sie das kleine, single-file javascript on production.
Hier ist unser Python-Code zum Kombinieren und Minimieren:
%Vor%Und hier ist die Django / HTML Vorlage, wo wir wechseln:
%Vor%Tags und Links asp.net-mvc javascript