Question

J'aimerais avoir certaines fonctionnalités de ScriptManager dans le nouveau modèle Asp.net MVC:

1- Combinaison de scripts
2- Résolution de différents chemins pour les fichiers Javascript externes
3- Minify et Compression Gzip

Voici ce que j'ai trouvé, mais je ne suis pas sûr de le savoir la meilleure façon pour l'approche MVC. En général, quelle est la bonne approche pour gérer le code Javascript dans le modèle MVC?

Était-ce utile?

La solution

Peut-être pourriez-vous simplement créer un nouveau contrôleur 'Scripts' avec différentes actions servant différentes combinaisons de fichiers JS compressés. Puisque MVC est conçu avec une approche axée sur les ressources, c’est-à-dire que les URL sont maintenant au centre de votre modèle de programmation, pourquoi ne pas définir aussi des adresses URI simples pour vos Javascripts?

Dans vos vues, vous pouvez par exemple référencer vos fichiers de la manière suivante:

<script src="http://your_domain/scripts/all"/>

Ceci appellerait votre action "tout", ce qui entraînerait l'envoi de tous vos fichiers de script compressés.

Bien sûr, il vous faudrait coder la combinaison et la compression pour le moment, ou peut-être réutiliser Scriptmanager en interne, je ne sais pas si c'est possible.

Ceci n’est cependant qu’une idée. Actuellement, je fais référence à des fichiers javascript individuels directement dans mes pages maîtres.

Autres conseils

Essayez ceci: http://www.codeplex.com/MvcScriptManager

  

MvcScriptManager est destiné à transférer certaines fonctionnalités clés disponibles dans ToolkitScriptManager d'AjaxControlToolkit dans le cadre ASP.NET MVC actuel. Vous pourrez l'utiliser comme contrôle dans votre application ASP.NET MVC.

     

Caractéristiques

     
      
  1. Combinaison de script (ou concaténation). Les scripts déclarés avec MvcScriptManager seront combinés à la volée en une seule demande de fichier de script lors du rendu de la page.
  2.   
  3. Minification du script (ou crunching) en mode release. Le processus de minification est effectué une seule fois à la première demande faisant référence au script spécifique. Les requêtes suivantes utiliseront le contenu du script dans la mémoire cache (voir le point 5 pour plus de détails). Le crunching peut être activé / désactivé pour chaque script.
  4.   
  5. Rendez les ressources localisées pour les fichiers de script autonomes. Les chaînes localisées seront ajoutées au script si elles sont spécifiées.
  6.   
  7. Prend en charge les paramètres configurables de compression et d'expiration HTTP lors de la sortie des scripts.
  8.   
  9. Mise en cache de script avec dépendance de fichier. Le contenu du fichier de script est mis en cache afin que le rendu du fichier de script combiné soit beaucoup plus performant. La dépendance du cache étant liée au fichier physique, toute mise à jour de script dans le système de fichiers sera immédiatement reflétée dans le cache.
  10.   
  11. Prend en charge les scripts de rendu en mode débogage / édition en fonction de l'environnement en cours d'exécution.
  12.   
  13. Résolution de différents chemins pour les fichiers de script autonomes.
  14.   
  15. Prend en charge plusieurs gestionnaires MvcScript sur une seule page (ou page maître). Prend en charge les modes de rendu maître et esclave afin que les scripts déclarés avec un ScriptManager puissent être remplacés par un autre pour le rendu.
  16.   
  17. Scénario de batterie de serveurs Web ...
  18.   

Ou que diriez-vous d'inclure le ScriptManager lui-même, en tant que seul habitant d'un seul, une fois par page <form runat="server">?

Comme ceci: -

   <form runat="server">
      <asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptGlobalization="true">
      </asp:ScriptManager>
    </form>

Fonctionne pour moi.

P.S. Vous devrez vous assurer que cette balise de formulaire ne soit jamais incorporée dans un autre formulaire. Les formulaires imbriqués ne fonctionnent pas.

Ce problème de recherche est à peu près le même: Un ScriptManager simple pour ASP.NET MVC - rédigé après la réponse à cette question, a donc été ajouté pour référence.

Dans un premier temps, je vais utiliser la solution de force brute, c’est-à-dire coller tout cela dans la page maître (surtout qu’on peut maintenant extraire jQuery du CDN de Microsoft). Nous allons ensuite examiner les options pour des solutions plus optimales.

MVC 4 inclut désormais des assistants de groupement et de minification. Vous définissez tous les scripts qui entrent dans votre bundle et MVC se chargera du bundling, de la compression, de la suppression du cache, etc.

http://www.asp.net/mvc/ tutoriels / mvc-4 / groupement-et-minification

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top