Helpex - Trao đổi & giúp đỡ Đăng nhập
36

Các cách mà chúng tôi có thể giảm kích thước của HTML Response được gửi bởi một ứng dụng asp.net là gì?

Tôi đang sử dụng Điều khiển không thuộc sở hữu của tôi và nó tạo ra đầu ra với khoảng trắng. Tôi quan tâm đến việc Thu nhỏ toàn bộ đầu ra HTML của trang giống như cách google làm (Xem nguồn www.google.com) để cải thiện thời gian.

Có bất kỳ lớp Tiện ích nào có sẵn cho ASP.NET có thể thực hiện công việc này cho tôi không?

36 hữu ích 0 bình luận 29k xem chia sẻ
33

Không cần phải làm điều đó trong thời gian chạy. Bởi vì nó có thể được thực hiện tại thời điểm biên dịch.

Chi tiết: http://omari-o.blogspot.com/2009/09/aspnet-white-space-cleaner-with-no.html

33 hữu ích 5 bình luận chia sẻ
20

Hãy thử mô-đun HTTP như được mô tả tại đây: http://madskristensen.net/post/a-whitespace-removal-http-module-for-aspnet-20

20 hữu ích 2 bình luận chia sẻ
10

Đối với nền tảng .NET của Microsoft, có một thư viện được gọi là WebMarkupMin , tạo ra sự thu nhỏ của mã HTML. Đối với mỗi khung ASP.NET có mô-đun riêng của nó:

  • ASP.NET Core - WebMarkupMin.Web . Được triển khai dưới dạng mô-đun HTTP, vì vậy nó có thể hoạt động với bất kỳ khuôn khổ nào. Thích hợp để sử dụng trong khung ASP.NET Web Pages (Razor).
  • ASP.NET MVC - WebMarkupMin.Mvc
  • ASP.NET Web Forms - WebMarkupMin.WebForms

Tài liệu có sẵn tại - http://webmarkupmin.codeplex.com/documentation

10 hữu ích 4 bình luận chia sẻ
6

Tôi muốn nhận xét về đề xuất của Thorn (nhưng tôi mới làm quen với việc tràn ngăn xếp).

  1. Mã được liên kết (omari-o.blogspot.com) không hỗ trợ MVC4 và mặc dù mã là mã nguồn mở, nó không thể dễ dàng được nâng cấp vì những thay đổi phanh giữa MVC3 và MVC4.

  2. Có thể có khoảng trắng được ghi vào kết quả http trong thời gian chạy, chỉ nhà phát triển của trang web thực tế mới có thể biết điều đó. Do đó, việc thu nhỏ tĩnh của các tệp mẫu (aspx) không phải là điều dễ hiểu chút nào. Thu nhỏ động, được đề xuất bởi gius, nên được sử dụng để đảm bảo rằng các khoảng trắng được loại bỏ chính xác và rất tiếc điều này sẽ phát sinh chi phí tính toán thời gian chạy. Nếu mã tự động ghi khoảng trắng vào đầu ra, nó sẽ phải được xóa động .

6 hữu ích 0 bình luận chia sẻ
3

Câu trả lời được chấp nhận không hoạt động với MVC 4, vì vậy đây là một lib tương tự thu nhỏ tại thời điểm xây dựng https://github.com/jitbit/HtmlOptimizerMvc4

3 hữu ích 2 bình luận chia sẻ
2

Chỉ cần thêm một tùy chọn khác mà tôi không thấy được liệt kê ở đây, đó là tùy chọn tôi được đề xuất sử dụng:

Công cụ dòng lệnh minifier html

Cách sử dụng: đâyđây

Tuy nhiên, có một vấn đề xảy ra với công cụ này: nó để lại các nhận xét dòng (//) đơn và gây ra sự cố cho việc phân tích cú pháp Razor, vì một nhận xét dòng đơn được đặt trong một khối C # như sau:

@{
  ... 
  ...
  // anything
  ...
}

sẽ khiến phần còn lại của đầu ra thu nhỏ của dòng, từ thời điểm này trở đi, bị bộ phân tích cú pháp Razor bỏ qua, do đó sẽ gây ra lỗi cho biết ở đó nó không thể tìm thấy dấu đóng "}" cho khối.

Giải pháp của tôi cho vấn đề này là xóa hoàn toàn các nhận xét này khỏi đầu ra. Bằng cách này nó hoạt động. Để làm điều đó, chỉ cần xóa RegexOptions.SingleLine khỏi dòng 145:

htmlContents = Regex.Replace(htmlContents, @"//(.*?)\r?\n", ""/*, RegexOptions.Singleline*/);
2 hữu ích 1 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ asp.net performance optimization minify , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading