Khoanglang89
Bạn hãy đăng nhập hoặc đăng ký
Khoanglang89

NHẬN THIẾT KẾ WEBSITE/ SOFTWARE - LÀM ĐỒ ÁN TỐT NGHIỆP, ĐỒ ÁN CHUYÊN MÔN NGÀNH CÔNG NGHỆ THÔNG TIN


You are not connected. Please login or register

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]

Admin

avatar

Admin
Admin
Loading
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.


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:

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.

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.

3. 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:
?
1
2
3
4
Code:
<
Code:
compilation

Code:
debug
Code:
=
Code:
"false"

Code:
targetframework
Code:
=
Code:
"4.0"
Code:
>
Code:
   
Code:
<
Code:
assemblies
Code:
>
Code:
   
Code:
</
Code:
assemblies
Code:
>
Code:
</
Code:
compilation
Code:
>
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

4. 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
?
1
2
3
4
5
6
Code:
protected

Code:
void

Code:
Application_Start()
Code:
{
   
Code:
AreaRegistration.RegisterAllAreas();
   
Code:
RegisterGlobalFilters(GlobalFilters.Filters);
   
Code:
RegisterRoutes(RouteTable.Routes);
Code:
}
Mặc định hệ thống sẽ hỗ trợ hai engine: Razor và Aspx. Và 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, tôi đang sử dụng Raror nên tôi sẽ add Raror Engine
?
1
2
3
4
5
6
7
8
Code:
protected

Code:
void

Code:
Application_Start()
Code:
{
   
Code:
AreaRegistration.RegisterAllAreas();
   
Code:
RegisterGlobalFilters(GlobalFilters.Filters);
   
Code:
RegisterRoutes(RouteTable.Routes);
   
Code:
ViewEngines.Engines.Clear();
   
Code:
ViewEngines.Engines.Add(
Code:
new

Code:
RazorViewEngine());
Code:
}
5. 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:
    ?12345@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
Ví dụ: khai báo này không tốt cho hệ thống
?
1
2
3
4
5
Code:
[HttpGet]
Code:
public

Code:
ActionResult Add()
Code:
//get empty data for user input operation
Code:
{
   
Code:
return

Code:
View(); 
Code:
//here the model instance defaults to null
Code:
}
Khai báo tốt cho hệ thống
?
1
2
3
4
5
Code:
[HttpGet]
Code:
public

Code:
ActionResult Add()
Code:
//get empty data for user input operation
Code:
{
   
Code:
return

Code:
View(
Code:
new

Code:
Product());
Code:
//here the ViewModel Product has been sent
Code:
}
6. 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

?
1
2
3
4
5
Code:
[OutputCache(VaryByParam =
Code:
"none"
Code:
, Duration = 3600)]
Code:
public

Code:
ActionResult Categories()
Code:
{
    
Code:
return

Code:
View(
Code:
new

Code:
Categories());
Code:
}
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à sữ 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

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
Code:
<
Code:
system.webserver
Code:
>
    
Code:
<
Code:
urlcompression

Code:
dodynamiccompression
Code:
=
Code:
"true"

Code:
dostaticcompression
Code:
=
Code:
"true"

Code:
dynamiccompressionbeforecache
Code:
=
Code:
"true"
Code:
>
    
Code:
</
Code:
urlcompression
Code:
>
Code:
</
Code:
system.webserver
Code:
>
8. Loại bỏ những modules không sử dụng
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
Code:
<
Code:
httpmodules
Code:
>
    
Code:
<
Code:
remove

Code:
name
Code:
=
Code:
"WindowsAuthentication"
Code:
></
Code:
remove
Code:
>
    
Code:
<
Code:
remove

Code:
name
Code:
=
Code:
"PassportAuthentication"
Code:
></
Code:
remove
Code:
>
    
Code:
<
Code:
remove

Code:
name
Code:
=
Code:
"Profile"
Code:
></
Code:
remove
Code:
>
    
Code:
<
Code:
remove

Code:
name
Code:
=
Code:
"AnonymousIdentification"
Code:
></
Code:
remove
Code:
>
Code:
</
Code:
httpmodules
Code:
>
 
Code:
<
Code:
pages

Code:
buffer
Code:
=
Code:
"true"

Code:
enableviewstate
Code:
=
Code:
"false"
Code:
></
Code:
pages
Code:
>
 
Code:
<
Code:
configuration
Code:
>
    
Code:
<
Code:
system.web
Code:
>
        
Code:
<
Code:
trace

Code:
enabled
Code:
=
Code:
"false"
Code:
></
Code:
trace
Code:
>
    
Code:
</
Code:
system.web
Code:
>
Code:
</
Code:
configuration
Code:
>
 
Code:
<
Code:
system.web
Code:
>
    
Code:
<
Code:
httpruntime

Code:
enableversionheader
Code:
=
Code:
"false"
Code:
></
Code:
httpruntime
Code:
>
Code:
</
Code:
system.web
Code:
>
 
Code:
<
Code:
httpprotocol
Code:
>
    
Code:
<
Code:
customheaders
Code:
>
    
Code:
<
Code:
remove

Code:
name
Code:
=
Code:
"X-Powered-By"
Code:
></
Code:
remove
Code:
>
    
Code:
</
Code:
customheaders
Code:
>
Code:
</
Code:
httpprotocol
Code:
>
Biên soạn và tổng hợp


_________________
Có nỗi buồn triền miên, làm trái tim hoá đá
Có những dòng lệ nhỏ, khiến đá hoá thành tim.

-------------------------------------------------------------------------------------------------------
Program Skills:  ASP.Net MVC 3/4; C#; VB.Net/ VB 6.0; Java Applet/Swing; JS/JavaScript; Bootstrap/ AngularJS; HTML/CSS; Turbo C/ Turbo C++; Pascal...
Xem mẫu Phần mêm quản lý ở đây     -           Xem mẫu Bán hàng trực tuyến ở đây
Nguyễn Ích Hoàn
new_life02081989@yahoo.com
nguyenichhoan1989@gmail.com
Xem lý lịch thành viên http://khoanglang89.forumvi.com

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Bài viết mới cùng chuyên mục

      Permissions in this forum:
      Bạn không có quyền trả lời bài viết