我使用ASP .NET 3.5和寻找一种方式来捆绑了一堆我的脚本。我遇到了ScriptManager的CompositeScript元素。这是一种用于捆绑的好方法吗?它有什么后果等吗?使用的ScriptManager CompositeScript捆绑脚本
回答
的优点和缺点,陷阱是其他脚本捆绑solutions--你会想先减少,要注意脚本的顺序,以启动脚本类似;关闭另一个文件中的任何未关闭的脚本。
一个ASP.NET具体问题是调试/开发经验。如果你把你的脚本,它更难以找到在IE调试你的代码,脚本将有一台机器生成的名称看起来类似于其他框架生成&你的代码将被安葬在一个更大的文件脚本。
因此,我在后面的代码中注册我的引用,并将它们包装在ifdef DEBUG/endif和ifdef中RELEASE/endif(一定要在项目属性中定义一个RELEASE,如果使用这个技巧,它不会默认发生) 。在RELEASE版本中,我捆绑了所有脚本,DEBUG版本将这些文件分开。
而且每微软的建议,脚本捆绑最适合你需要在整个网站文件。如果您有一个带有A,B,C的多页网站,并且您的用户通常只访问其中的一个,那么捆绑A,B,C的文件将为用户提供2个额外的文件。我认为这是一个糟糕的微观优化,因为大多数应用程序都有很小的JavaScript文件,所以一个网站的JS捆绑的价值是没有足够的字节担心,除非你有很多的流量。
最后,服务器端ScriptManager不提供任何推迟脚本或动态触发客户端负载的方法(除了在UI之后加载脚本),我使用LAB.js以后动态加载脚本...这有时可以让你推迟一个脚本,直到你知道你需要它,并可能推迟永久加载该脚本。一旦你捆绑该脚本,它会被加载为每一个用户,如果他们变成需要它或不..
第2部分 另一种疑难杂症,至少对我来说,虽然您可以启用JS的缓存(没时间查看语法!),并且您还可以使用expires头在IIS级别启用缓存,但ScriptManager在新版本发布时不会帮助您“缓冲”缓存。理想情况下,脚本管理工具会诱使浏览器认为脚本位于随上次更新更改而更改的文件夹中,以便脚本可以在客户端缓存一年。
我希望我有信息上,如果脚本是服务器端cached--我猜他们不是。但是因为用户通常每天最多获取一次脚本 - 在我的服务器上它们似乎缓存了24小时,如果每次请求都重新生成脚本,则不会太有趣。最后,如果你正在使用CDN来处理像jquery这样的事情(取决于你是公共还是intranet),它是4.0和4.5版本,它可以更容易地告诉ScriptManager使用CDN和备用时间CDN下跌。
使用sumfile.js?N = {0}
其中{0}是多少OS建筑物
- 1. 使用CompositeScript结合脚本
- 2. 使用MVC在Angular中捆绑脚本
- 3. 脚本捆绑的angular2 rc
- 4. 捆绑助手捆绑和拆分咖啡脚本
- 5. 手动利用MVC脚本捆绑
- 6. 使用MS捆绑的空捆绑
- 7. 调试MVC中的捆绑脚本
- 8. 捆绑:不可执行:脚本/ delayed_job的
- 9. ASP.NET ScriptManager CompositeScript不能使用需要查询字符串参数的javascript
- 10. 使用捆绑
- 11. 捆绑脚本没有得到渲染
- 12. 捆绑脚本/ css未被识别
- 13. ASP.NET MVC脚本捆绑不会呈现
- 14. 捆绑脚本文件未呈现。
- 15. ScriptManager立即运行脚本
- 16. 如何使用Perl脚本分发/捆绑Math :: Random?
- 17. 捆绑不使用rbenv版本
- 18. 为什么捆绑安装不能在Gemfile中使用捆绑器的版本?
- 19. 如何让捆绑器使用旧的捆绑器宝石版本?
- 20. 如何在bash shell脚本中使用特定的捆绑程序版本
- 21. 客户端脚本不会ScriptManager的
- 22. 将脚本添加到ScriptManager的条件
- 23. 通过ScriptManager的注册脚本
- 24. 在clickonce应用程序中运行捆绑的python脚本
- 25. 如何引用捆绑的必需脚本?
- 26. 本地化的脚本捆绑解决方案
- 27. Heroku的版本相捆绑
- 28. 安装捆绑的较新版本的捆绑
- 29. 组合脚本 - Toolscript管理器与3.5中的CompositeScript
- 30. 使用Rxjs UMD捆绑
非常感谢!您是否还可以放下一条关于ScriptManager组合脚本无效/何时被浏览器缓存视为有效的行?我的意思是,我可以确定在应用程序重新启动/部署后脚本会再次下载,另一方面,我可以确定这个大的组合脚本不会经常下载吗? – dragonfly 2013-05-13 18:01:39
增加了第2部分,不幸的是,这正在进入我仍在学习的领域。 – MatthewMartin 2013-05-13 18:08:45