2012-08-30 39 views
199

如何爲什麼要使用@ Scripts.Render( 「〜/包/ jQuery的」)

@Scripts.Render("~/bundles/jquery") 

從HTML只是引用這樣的腳本

<script src="~/bundles/jquery.js" type="text/javascript"></script> 

是否有任何性能提升有什麼不同?

+0

如何添加類型=「文/ CSS 「 - http://stackoverflow.com/questions/15662096/how-do-i-add-type-text-css-to-a-script-tag-when-using-system-web-optimization – Lijo

回答

262

捆綁就是將沒有任何格式(也稱爲縮小)的JavaScript或樣式表文件壓縮到單個文件中,以節省帶寬和請求數以加載頁面。

至於例如,你可以創建自己的包:

bundles.Add(New ScriptBundle("~/bundles/mybundle").Include(
      "~/Resources/Core/Javascripts/jquery-1.7.1.min.js", 
      "~/Resources/Core/Javascripts/jquery-ui-1.8.16.min.js", 
      "~/Resources/Core/Javascripts/jquery.validate.min.js", 
      "~/Resources/Core/Javascripts/jquery.validate.unobtrusive.min.js", 
      "~/Resources/Core/Javascripts/jquery.unobtrusive-ajax.min.js", 
      "~/Resources/Core/Javascripts/jquery-ui-timepicker-addon.js")) 

,並使其像這樣:

@Scripts.Render("~/bundles/mybundle") 

對於樣式表,你將不得不使用一個StyleBundle和@ Styles.Render()。

不是通過單個請求(使用腳本或鏈接標籤)加載每個腳本或樣式,而是將所有文件壓縮到單個JavaScript或樣式表文件中並加載在一起。

+8

只是想知道:是有一個文件存儲在某個地方,還是隻存在於內存中? – Elliot

+15

它存儲在緩存中。 – NicoJuicy

+4

如果CDN不可用,它也可以設置爲自動使用CDN並回退到本地腳本。這很漂亮。 –

45

您還可以使用:

@Scripts.RenderFormat("<script type=\"text/javascript\" src=\"{0}\"></script>", "~/bundles/mybundle") 

要指定一個場景你的輸出格式,你需要使用字符集,類型等

+3

對於加載requirejs模塊也非常有用 – Phil

+12

...或添加'async'屬性 – ChrFin

+6

'@Scripts .RenderFormat(「

  • 11. 爲什麼要使用addscalar?
  • 12. 爲什麼要使用Windows.Forms.Timer?
  • 13. 爲什麼要使用restartLoader()?
  • 14. 爲什麼要使用jsp:forward
  • 15. 爲什麼要使用DataTemplate.DataType
  • 16. 爲什麼要使用scala.collection.immutable.Stack
  • 17. 爲什麼要使用Querydsl?
  • 18. 爲什麼要使用CC_BREAK_IF?
  • 19. 爲什麼要使用DialogFragment?
  • 20. 爲什麼要使用Dispatcher.BeginInvoke?
  • 21. 爲什麼使用grpclog包
  • 22. 爲什麼要使用Socket.io?
  • 23. 爲什麼要使用fluentmigrator?
  • 24. 爲什麼要使用PortletURL?
  • 25. 爲什麼要使用Uploadify?
  • 26. 爲什麼要使用Mockito?
  • 27. Yocto:爲什麼要包括一個包?
  • 28. 爲什麼要包含/需要多次?
  • 29. 爲什麼在使用let(ES6)時不需要使用閉包?
  • 30. 爲什麼我需要Iterator接口,爲什麼要使用它?