Je compresse mon propre JS en utilisant YuiCompressor, mais y at-il une raison pour laquelle MicrosoftAjax.js n'est pas minifié? Ou existe-t-il des paramètres pour exécuter la version compressée (s'il existe une version compressée)? Ou dois-je le décompiler et réduire moi-même la ressource de script?Y a-t-il une raison pour laquelle MicrosoftAjax.js n'est pas minifié?
Répondre
Je suis surpris de ces réponses trompeuses.
ASP.NET AJAX a toujours fourni à la fois le débogage et les versions compressées de MicrosoftAjax.js. Une combinaison du paramètre de débogage de web.config et ScriptManager's ScriptMode property contrôle quel script est référencé.
De plus, vous pouvez utiliser the "retail" setting pour forcer les scripts compressés indépendamment.
Merci pour ce Dave. Bon de savoir. – nickytonline
Brillant, je n'avais aucune idée du réglage "retail", notre société a l'habitude de déployer des choses en production en mode débogage, etc. – Matt
Je ne peux que supposer qu'il a été laissé en l'état pour faciliter la compréhension, et que vous avez déjà laissé entendre, je vois que vous connaissez des raisons pour lesquelles vous ne pouvez pas compresser vous-même, il est seulement JavaScript après tout - Bien que MS Vous aimeriez peut-être croire autrement, ils ne l'arrosent pas de poussière de lutin magique pour le rendre différent! :)
[Et regardons les choses en face; MS n'a jamais eu peur de la taille de son code, ont-ils?]
EDIT: Pour ma défense, au moment de l'écriture de cette réponse, je n'avais aucune expérience avec .NET 3.5; Je réalise maintenant qu'ils ont apporté plusieurs améliorations indispensables dans ce domaine.
Évidemment, MS ne pense pas que la taille du fichier JavaScript soit très importante (ce qui est fou). De plus, en fonction de mon expérience avec MS Ajax, ils injectent également plusieurs balises SCRIPT (parfois plus de 10) dans le balisage. Ces balises apportent des scripts à partir d'un gestionnaire WebResource.axd. Donc, dix demandes ou plus doivent être faites juste pour obtenir le Javascript nécessaire à l'exécution de la page! Juste pour ajouter au ridicule, ils clouent sur une chaîne de requête folle sur l'URL du gestionnaire, ce qui empêche probablement le script d'être mis en cache par le navigateur.
Cette folie est une raison suffisante pour moi de fossé MS Ajax complètement et passer à jQuery, ce qui est beaucoup mieux bibliothèque, surtout depuis Visual Studio now has Intellisense for jQuery.
Qui a voté contre cette réponse, et pourquoi? –
Pas sûr, en hausse de vote de moi parce que je partage votre opinion sur ASP.NET Ajax. –
J'ai été downvoted aussi - peut-être nous avons un staffer MS sur SO? :) Je souhaite que les votants expliqueraient pourquoi ils ont voté ainsi ... – CJM
qui préféreriez-vous:
- MicrosoftAjax.js VIENT compressés, obscurcie déjà.
- MicrosoftAjax.js est non compressé et ouvert afin que vous puissiez le lire et le comprendre vous-même.
pourquoi pas les deux? jQuery entre dans les deux, non? –
Alors qu'il serait trivial d'avoir les deux versions, et assez utile aussi, si vous alliez prendre la voie facile, vous devriez fournir la version non compressée. +1 parce que cela ne méritait pas un vote négatif. – CJM
@Neil N. Je suis d'accord, pourquoi pas les deux? Lors du développement utilisez non compressé et en prod utilisez la version minifiée/obfusquée. – nickytonline
Voir http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx, vous avez besoin
enableScriptMinification="true"
l'option
et ajouter à la liste MicrosoftAjax.js
J'ai déjà lu cet article, mais merci de l'avoir posté ici. Ce que je cherchais cependant était une solution prête à l'emploi de Microsoft Ajax. On dirait que le bricolage est le moyen d'aller sur celui-ci. – nickytonline
Tous les scripts sont System.Web.Extensions minified - il existe deux versions de chacun, comme une excellente réponse de Dave Ward souligne. ScriptManager utilisera par défaut la version de débogage lorsque le fichier web.config est en mode débogage. Retournez-le pour libérer avec le paramètre de vente au détail ou debug = "false", et regardez le script ensuite.
Aussi, les scripts servis par WebResourceHandler ou ScriptResourceHandler sont en fait mises en cache.Ils sont cachés de la meilleure façon possible - pour toujours, de sorte qu'ils n'ont même pas besoin de 301 lors de futures visites. La chaîne de requête est telle qu'elle est, car elle contient des données cryptées. Il est chiffré car il contient des informations sur la ressource de script, y compris un nom d'assembly, ainsi que parce qu'il empêche les attaques d'inondation du cache.
Je ne cherche pas de représentant ici, je voulais juste donner plus de détails.
Bon à savoir sur le WebResourceHandler ou le ScriptResourceHandler mis en cache. Donc, je suppose que lorsque vous effectuez des modifications et que vous les redéployez, elles sont à nouveau mises en cache mais en tant que fichiers différents car la chaîne de requête cryptée a changé? – nickytonline
Yup. Toute modification de la ressource modifie la chaîne de requête, ce qui entraîne la création d'un élément nouvellement mis en cache. Aussi, je n'ai pas mentionné que les scripts sont compressés par gzip, aussi. – InfinitiesLoop
- 1. Y at-il une raison pour laquelle je ne devrais pas utiliser NVARCHAR dans Sql Server?
- 2. Générateur pour les étiquettes: Une raison pour laquelle je devrais?
- 3. Y a-t-il une bonne raison pour laquelle #region et #endregion ne fonctionnent pas dans F #
- 4. Toute raison pour laquelle IsNumeric() échoue sur un nombre?
- 5. Quelle est la raison pour laquelle les cookies réapparaissent mystérieusement?
- 6. Y a-t-il une raison pour laquelle je lis parfois dans Books "layoutSubviews Method" et parfois "drawRect: Method"?
- 7. Java Stack/Nest Count
- 8. Quelle est la raison pour laquelle tous les types de valeur ne peuvent pas être validés?
- 9. modrewrite pour css/jss minifié
- 10. Quelle peut être la raison pour laquelle mon sérialiseur REST personnalisé ne fonctionne pas?
- 11. Toute raison pour laquelle cette requête de mise à jour LINQ to SQL ne fonctionne pas. .
- 12. Quelqu'un peut-il fournir une explication claire de la raison pour laquelle Google Guice est utile?
- 13. Existe-t-il une raison pour laquelle un asp: Button fonctionnera mais un asp: LinkButton ne fonctionnera pas?
- 14. Quelle est la raison pour laquelle LINQ to SQL ne génère pas de collection basée sur une relation?
- 15. Y a-t-il une raison d'utiliser System.Uri?
- 16. Aide nécessaire pour déterminer la raison pour laquelle maxClauseCount est défini sur 1024 erreur
- 17. Y a-t-il une raison d'utiliser ENUM dans VBA?
- 18. Raison pour laquelle un projet VS 2008 est en cours de reconstruction à chaque fois
- 19. tag SqlDataSource pas ramasser mon selectparameter pour une raison quelconque
- 20. Y at-il une raison de ne pas expédier les pdb avec votre application?
- 21. Y a-t-il une raison pour ne pas utiliser HTTP PUT et DELETE dans une application Web?
- 22. Quelle peut être la raison pour laquelle ma sous-classe UIImageView ne reçoit aucun événement tactile?
- 23. Comment enregistrer une entité pour la première fois pour laquelle une autre entité préexistante doit y être rattachée
- 24. ASP.NET MVC sans MicrosoftAjax.js et MicrosoftMvcAjax.js
- 25. Y a-t-il une raison pour ne pas utiliser les alias dans l'espace de noms System?
- 26. Une raison d'utiliser Souris cliquez sur vs clavier pour poster?
- 27. Vous ne trouvez pas une raison pour ce bogue dans mon ASP CMS
- 28. Quelle pourrait être la raison pour laquelle mon test d'unité d'interface utilisateur Java s'est concentré sur le bureau GNOME?
- 29. ActionScript: Y a-t-il une bonne raison d'utiliser le casting 'as'?
- 30. Table MySQL incrémentée de 10 pour une raison quelconque
+1 Bonne question! –
Eh bien, d'après les réponses que j'ai reçues, il ne semble pas y avoir de moyen d'obtenir une version réduite/compressée de MicrosoftAjax.js. Donc, il semble que le bricolage est la voie à suivre, comme je l'ai mentionné dans la réponse que j'ai choisie. Comme je l'ai mentionné à Josh, dans ASP.NET 3.5, vous pouvez combiner des scripts maintenant, http://msdn.microsoft.com/en-us/library/cc488552.aspx. Nous n'avons pas encore migré vers la version 3.5, mais quand nous le ferons, je le vérifierai. J'ai lu des critiques mitigées à ce sujet. De plus, j'ai ajouté jQuery au projet il y a un certain temps, donc je suis en train de jouter lentement tout ce qui peut être qualifié. – nickytonline
Mon commentaire ci-dessus n'est plus vrai. La réponse de Dave Ward est la bonne, donc pas de bricolage. – nickytonline