2012-08-30 32 views
199

như thế nàoTại sao sử dụng @ Scripts.Render ("~/bó/jquery")

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

khác chỉ tham khảo kịch bản từ html như thế này

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

Có bất kỳ tăng hiệu suất?

+0

Làm thế nào để thêm type = “text/css ”- http://stackoverflow.com/questions/15662096/how-do-i-add-type-text-css-to-a-script-tag-when-using-system-web-optimization – Lijo

Trả lời

262

Ghép là tất cả việc nén một số tệp JavaScript hoặc tệp định kiểu mà không có bất kỳ định dạng nào (cũng được gọi là rút gọn) thành một tệp duy nhất để lưu băng thông và số yêu cầu tải trang.

Một ví dụ bạn có thể tạo nhóm của riêng bạn:

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")) 

Và làm cho nó như thế này:

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

Đối với stylesheets bạn sẽ phải sử dụng một StyleBundle và @ Styles.Render().

Thay vì tải từng tập lệnh hoặc kiểu bằng một yêu cầu (với tập lệnh hoặc thẻ liên kết), tất cả các tệp được nén thành một tệp JavaScript hoặc tệp định kiểu và được tải cùng nhau.

+8

Chỉ cần tự hỏi: là có một tập tin được lưu trữ ở đâu đó cho gói đó hay nó chỉ tồn tại trong bộ nhớ? – Elliot

+15

Nó được lưu trữ trong bộ nhớ cache. – NicoJuicy

+4

Nó cũng có thể được đặt để tự động sử dụng CDN và dự phòng cho các tập lệnh cục bộ nếu CDN không khả dụng. Nó khá trơn. –

45

Bạn cũng có thể sử dụng:

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

Để xác định định dạng của đầu ra của bạn trong một kịch bản mà bạn cần phải sử dụng Charset, Loại vv

+3

Cũng rất hữu ích khi tải các mô-đun requirejs – Phil

+12

... hoặc để thêm thuộc tính 'async'. – ChrFin

+6

'@Scripts .RenderFormat ("", "~/bundles/mybundle") ' –