Tối ưu hóa để tăng tốc website ASP.NET MVC

Tối ưu hóa để tăng tốc website luôn là một vấn đề được các lập trình viên quan tâm tới bên cạnh việc tạo ra một website như ý. Hiện nay, có rất nhiều công cụ cũng như phương pháp từ đơn giản đến phức tạp nhất để tối ưu hóa website, đặc biệt là website ASP.Net MVC luôn được các lập trình viên cho là hơi “nặng” vì phải mang theo lượng lớn dll.

Nhằm giúp các bạn tối ưu hóa website ASP.Net MCV, Stanford – dạy kinh nghiệm lập trình xin giới thiệu một số phương pháp sau:

  1. Nén mã CSS và Javascript

Trong ASP.Net MVC có cơ chế bundles (BundleConfig.cs), việc khai báo các file css và javascript trong file này giúp chúng ta nén các mã CSS và Javascript, từ đó giúp giảm thời gian tải trang.

  1. Chuyển mã Javascript xuống cuối trang

Đây là một mẹo nhỏ rất hay tăng đáng kể tốc độ tải web. Người xem website không cần thiết phải chờ để tải hết toàn bộ mã javascript đặt ở đầu trang, cái họ cần nhìn thấy trước tiên là bố cụ trang (mã html và css) của bạn, sau đó mới đến các sự kiện phía client của javascript, vì vậy cách tối ưu nhất là hãy để chúng ở cuối trang web của bạn.

  1. Chạy Release Mode

Chắc chắn là hệ thống web của bạn đang chạy trong chế độ “Release”

File file web.config:

<compilation debug=”false” targetframework=”4.0″>

    <assemblies>

    </assemblies>

</compilation>

Tại sao chúng ta cần cái này: vì MVC sẽ không làm bất cứ View Look-up Caching  nếu bạn chạy ứng dụng trong chế độ Release Mode.

  1. Sử dụng duy nhất một View Engine

Mặc định trong file global.asas.cs của chúng ta sẽ như thế này

protected void Application_Start()

{

   AreaRegistration.RegisterAllAreas();

   RegisterGlobalFilters(GlobalFilters.Filters);

   RegisterRoutes(RouteTable.Routes);

}

Mặc định hệ thống sẽ hỗ trợ hai engine: Razor và Aspx. Không có lý do gì để ta phải trả phí cho cái mà ta không sử dụng, điều này sẽ làm hệ thống của chúng ta chậm, do đó chúng ta cần điều chỉnh lại, chỉ sử dụng một Engine duy nhất. Trong trường hợp này, sử dụng Raror nên sẽ add Raror Engine

protected void Application_Start()

{

   AreaRegistration.RegisterAllAreas();

   RegisterGlobalFilters(GlobalFilters.Filters);

   RegisterRoutes(RouteTable.Routes);

   ViewEngines.Engines.Clear();

   ViewEngines.Engines.Add(new RazorViewEngine());

}

  1. Không chuyển giá trị null ViewModel đến View

Khi nào vấn đền này xảy ra

Bạn chuyển giá trị null ViewModel đến view dùng html helpers giống như View:

@model PawLoyalty.ViewModels.Product

@{

    @Html.TextBoxFor(m => m.ProductName);

}

Thường xảy ra khi Insert dữ liệu

Trong trường hợp nếu chúng ta truyền giá trị Null, thì hệ thống sẽ trả về NullReferenceException. Rõ ràng, nếu chúng ta xử lý tốt thì hệ thống sẽ không cần kiểm tra giá trị Null cho các giá trị khởi tạo, điều này gây nên sự lãng phí hệ thống.

  1. Sử dụng Cache khi có thể

Trong trường hợp giá trị nội dung ít thay đổi, thì việc sử dụng OutputCacheAttribute sẽ giúp các bạn tiết kiệm rất nhiều về số lượng kết nối hệ thống hoặc truy vấn dữ liệu.

[OutputCache(VaryByParam = “none”, Duration = 3600)]

public ActionResult Categories()

{

    return View(new Categories());

}

Trên là ví dụ mô tả cách sử dụng cache trong ASP.Net MVC. Điều này phù hợp với các ứng dụng nhỏ và dữ liệu ít thay đổi. Tuy nhiên, với các ứng dụng lớn, số lượng truy cập nhiều thì đây không phải là sự lựa chọn tốt. Khi đó các bạn nên nghĩ đến những cache khác như có memcached provider để có thể đáp ứng nhu cầu của bạn.

  1. Sử dụng HTTP Compression

Các bạn mở file web.config, thêm vào đoạn code sau

<system.webserver>

    <urlcompression dodynamiccompression=”true” dostaticcompression=”true” dynamiccompressionbeforecache=”true”>

    </urlcompression>

</system.webserver>

Với những chia sẻ trên bạn đã cách tối ưu hóa để tăng tốc website ASP.Net MVC chưa. Nếu bạn muốn sử dụng thành thạo ASP.Net, học làm web động một cách nhanh chóng và hiệu quả nhất trên công nghệ web để cung cấp nhân lực và việc làm cho thị trường CNTT. Hãy tham khảo khóa học tại website: www.stanford.com.vn

Nhận xét