Làm thế nào
@Scripts.Render("~/bundles/jquery")
khác với việc chỉ tham khảo tập lệnh 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?
Làm thế nào
@Scripts.Render("~/bundles/jquery")
khác với việc chỉ tham khảo tập lệnh 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?
Câu trả lời:
Gói là tất cả về việc nén một số tệp JavaScript hoặc bảng định kiểu mà không có bất kỳ định dạng nào (còn đượ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ố lượng yêu cầu để tải trang.
Ví dụ, bạn có thể tạo gói của riêng mình:
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à kết xuất nó như thế này:
@Scripts.Render("~/bundles/mybundle")
Một lợi thế nữa của @Scripts.Render("~/bundles/mybundle")
bản địa <script src="~/bundles/mybundle" />
là @Scripts.Render()
sẽ tôn trọng web.config
cài đặt gỡ lỗi:
<system.web>
<compilation debug="true|false" />
Nếu debug="true"
sau đó, nó sẽ hiển thị các thẻ script riêng lẻ cho từng tập lệnh nguồn, mà không có bất kỳ sự thu nhỏ nào.
Đối với biểu định kiểu, bạn sẽ phải sử dụng StyleBundle và @ Styles.Render ().
Thay vì tải từng tập lệnh hoặc kiểu với một yêu cầu (có thẻ tập lệnh hoặc liên kết), tất cả các tệp được nén thành một tệp JavaScript hoặc biểu định kiểu và được tải cùng nhau.
Bạn cũng có thể dùng:
@Scripts.RenderFormat("<script type=\"text/javascript\" src=\"{0}\"></script>", "~/bundles/mybundle")
Để chỉ định định dạng đầu ra của bạn trong một kịch bản mà bạn cần sử dụng Bộ ký tự, Loại, v.v.
async
thuộc tính.
@Scripts.RenderFormat("<script type=\"text/javascript\" async src=\"{0}\"></script>", "~/bundles/mybundle")