Tôi xin giới thiệu một số phương pháp giúp chúng ta tối ưu hóa website ASP.Net MVC:
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.
2. 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.Chắc chắn là hệ thống web của bạn đang chạy trong chế độ “Release”
File file web.config:
1
2
3
4
| < compilation debug = "false" targetframework = "4.0" > < assemblies > </ assemblies > </ compilation > |
1
2
3
4
5
6
| protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); } |
1
2
3
4
5
6
7
8
| protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); ViewEngines.Engines.Clear(); ViewEngines.Engines.Add( new RazorViewEngine()); } |
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:
- Thường xảy ra khi Insert dữ liệu
1
2
3
4
5
| @model PawLoyalty.ViewModels.Product @{ @Html.TextBoxFor(m => m.ProductName); } |
Ví dụ: khai báo này không tốt cho hệ thống
1
2
3
4
5
| [HttpGet] public ActionResult Add() //get empty data for user input operation { return View(); //here the model instance defaults to null } |
1
2
3
4
5
| [HttpGet] public ActionResult Add() //get empty data for user input operation { return View( new Product()); //here the ViewModel Product has been sent } |
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
1
2
3
4
5
| [OutputCache(VaryByParam = "none" , Duration = 3600)] public ActionResult Categories() { return View( new Categories()); } |
7. Sử dụng HTTP Compression
Các bạn mở file web.config, thêm vào đoạn code sau
1
2
3
4
| < system.webserver > < urlcompression dodynamiccompression = "true" dostaticcompression = "true" dynamiccompressionbeforecache = "true" > </ urlcompression > </ system.webserver > |
Khi khởi tạo Project mới, khuyên các bạn nên tạo empty project để có thể loại bỏ bớt những modules (là các dll) không cần thiết so với khi tạo project dạng aplication
Các bạn khai báo thêm đoạn code sau để loại bỏ các modules không dùng
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| < httpmodules > < remove name = "WindowsAuthentication" ></ remove > < remove name = "PassportAuthentication" ></ remove > < remove name = "Profile" ></ remove > < remove name = "AnonymousIdentification" ></ remove > </ httpmodules > < pages buffer = "true" enableviewstate = "false" ></ pages > < configuration > < system.web > < trace enabled = "false" ></ trace > </ system.web > </ configuration > < system.web > < httpruntime enableversionheader = "false" ></ httpruntime > </ system.web > < httpprotocol > < customheaders > < remove name = "X-Powered-By" ></ remove > </ customheaders > </ httpprotocol > |
Nguồn: http://www.kenhdotnet.com/
Không có nhận xét nào:
Đăng nhận xét