logo

Đang load dữ liệu

logo devmaster

VIỆN CÔNG NGHỆ VÀ ĐÀO TẠO DEVMASTER

Đào tạo - Phần mềm - Cho thuê nhân sự

  • 0969.609.003
  • 0978.611.889
  • Trang chủ
  • Các khoá đào tạo
    • Chuyên đề WEB - PHP

      • Lập trình web với HTML5 - CSS3- JQuery - Bootstrap - Ajax - [36 giờ]
      • Lập trình web frontend - reactjs - [75 giờ]
      • Lập trình web với mã nguồn mở PHP&MYSQL - PHP FRAMEWORK [126 giờ]

      Chuyên đề Mobile

      • Lập trình Games/Apps trên nền tảng Android - [120 giờ]
      • Lập trình Games/Apps trên nền tảng IOS - [120 giờ]

      Chuyên đề JAVA

      • Ngôn ngữ lập trình hướng đối tượng với java - [40 giờ]
      • Lập trình ứng dụng với java - [100 giờ]
      • Lập trình web site với java framework (JPA, HIBERNATE, SPRING MVC, SPRINGBOOT) - [276 giờ]

      Chuyên đề NETWORK/SECURITY

      • Khoá học Quản trị hạ tầng mạng CCNA v6 - [72 giờ]
      • Khoá học quản trị hệ thống với Windows SERVER 2012- [72 giờ]
      • Chuyên gia bảo mật hệ thống CompTIA + - [110 giờ]

      Chuyên đề .NET

      • Nền tảng lập trình hướng đối tượng với C# - [40 giờ]
      • Lập trình ứng dụng WINDOWS FORM - [100 giờ]
      • Lập trình Web với ASP.NET MVC 5, WebAPI - [145 giờ]

      Chuyên đề khác

      • Ngôn ngũ lập trình C/C++ - [80 giờ]
  • Lập trình cho trẻ em
  • Dịch vụ
    • Đào tạo theo như cầu
    • Cung cấp thiết bị - Phần mềm
    • Tư vấn - Thiết kế mạng hạ tầng
    • Tư vấn - Triển khai dịch vụ mạng
    • Tư vấn - Tư vấn, triển khai giám sát hệ thống
    • Thực tập dự án
  • Lịch khai giảng
  • Tin tức
    • Tin tức và sự kiện
    • Tin hoạt động
    • Tin công nghệ
    • Hội thảo, workshop, Codecam
    • Thông tin việc làm
    • Cẩm nang chia sẻ kiến thức
  • Tiện ích
  • Liên hệ

Cẩm nang chia sẻ kiến thức

Feb - 2019

23

Một số thủ thuật đơn giản nhưng tăng đáng kể hiệu suất cho Website của bạn (Phần 2)

Cẩm nang chia sẻ kiến thức

Một số thủ thuật đơn giản nhưng tăng đáng kể hiệu suất cho Website của bạn

Chúng ta cùng đến với một vài mẹo vặt nhỏ tiếp theo để tăng hiệu suất cho website của bạn

I, Đối với HTML

Bạn thử nghĩ xem mình có thói quen nhét toàn bộ các thẻ <link> và thẻ <script> trên <head>không ?

Rất rất nhiều website mà mình biết thường hay code như thế này, và điều này làm ảnh hưởng rất lớn tới hiệu năng của website.

Đối với các thẻ <link>, việc các bạn để trên <head> là điều bắt buộc, nhưng đối với thể <script> thì không ! Việc để thẻ <script> ở trên <head> sẽ dẫn tới vấn đề Render-Blocking Resources. Đây là một vấn đề không nhỏ ảnh hưởng tới hiệu năng của Website.

Vì sao lại như vậy ? Khi đọc 1 file HTML, browser sẽ đọc lần lượt từng dòng, đến dòng có thẻ <link> nó sẽ download file CSS được link ở đó, tương tự với thẻ <script>, file JS (nếu có) được đính kèm theo thẻ sẽ được tải xuống.

Tuy nhiên, đối với file JS, nó sẽ được thực thi ngay lập tức (mình sẽ đề cập cách để thẻ <script>trên <head> mà vẫn tránh được việc thực thi JS ngay lập tức ở sau). Điều này dẫn đến việc người dùng sẽ phải đợi browser tải các file JS về, thực thi toàn bộ code JS rồi mới tiếp tục đọc đến các dòng HTML sau và hiển thị cho người dùng => Tốc độ hiển thị trang web cho người dùng rất chậm.

II, Đối với CSS:

1, Chỉ viết, thêm những gì cần thiết:

Ok, điều này rất dễ hiểu đúng không nào ? Tuy nhiên thì không phải ai cũng làm được đâu nhé !

Cuộc chiến CSS là một điều không hề đơn giản. Đôi khi bạn của ta chỉnh sửa chỗ này, ta lại vô tình ghi đè lên và thấy nó không hoạt động, vậy là ta sẽ đi spam 1 loạt chuỗi !important, rồi cũng chẳng tìm chỗ code ông bạn kia viết mà thảo luận để xóa đi. Vậy là nó vô tình gây nên code thừa, nhưng người dùng thì vẫn phải tải nó về => Giảm hiệu suất.

Và còn đó những dòng import thư viện 1 cách không kiểm soát, cứ add tạm Bootstrap vào đã rồi làm gì làm sau, hay như một vài animation đơn giản có thể tự làm với CSS3, ta lại đi kiếm 1 cái thư viện cỡ bự nhét vào. Điều này làm trang web của chúng ta bị chậm đi một cách đáng kể.

2, Above-the-fold loading:

Cái này khó hiểu hơn 1 chút này, đầu tiên khi load 1 trang web, những gì user nhìn thấy đầu tiên mà chưa cần scroll xuống dưới, đó được gọi là Above-the-fold (ATF). Khi tải một trang web, ta mong muốn user được nhìn thấy ATF thật nhanh chóng với đầy đủ CSS, nhưng phần còn lại của trang web thì không cần thiết phải ngay lập tức giống như ATF.

Vậy nên, để tăng tốc độ tải cho ATF, ta hãy cắt bớt CSS dành cho phần nằm ngoài ATF lại phía sau, ưu tiên tải CSS cho ATF trước.

Để làm được điều này thì đầu tiên hãy thay đổi thứ tự các file được sắp xếp theo thẻ <link> và có thể dùng JS để tải CSS cho những phần nằm ngoài ATF, ví dụ như đoạn code sau:

3, Sử dụng media attribute:

Bạn có bao giờ băn khoăn về việc có những file CSS mình chỉ cần sử dụng với màn hình cỡ lớn, còn với màn hình nhỏ như mobile thì không cần mà không biết loại bỏ như thế nào không ?

Đây là một giải pháp siêu đơn giản dành cho bạn – sử dụng media attribute. Và đặc biệt hơn, media attribute này không chỉ sử dụng cho CSS, bạn có thể thêm nó vào rất nhiều tag khác trên HTML, nó sẽ lọc xem với màn hình như thế nào thì hiển thị nội dung này (nó có thể check loại màn hình, kích cỡ, độ phân giải, khả năng hiển thị màu,…). Đây là một attribute rất tuyệt trong HTML

4, Less specificity:

Đây là một điều rất khó làm khi trong team có cuộc chiến CSS. Tuy nhiên nếu kiểm soát tốt và làm được điều này, website của bạn sẽ ổn hơn rất nhiều.

Hãy thử xem lại code của mình có những đoạn như thế này không nhé:

#slider .caption .hero .app_store_btn .play_icon .android_icon {

    margin: 0;

}

Đối với những layout phức tạp, việc chỉ rõ tag nào mà CSS ta viết cần can thiệp vào trở nên rất khó khăn. Tuy nhiên hãy hạn chế tối đa việc bắt browser tìm qua quá nhiều tag con, hãy đặt class, id sao cho phù hợp để ta chỉ cần viết kiểu như này:

.android_icon {

    margin: 0;

}

hoặc ít ra

.play_icon .android_icon {

    margin: 0;

}

Chỉ vậy thôi, đừng để browser phải tìm lần lượt lần lượt các tag con, như thế mất rất nhiều thời gian để nó render ra nội dung cho user.

III, Lời kết:

Trong bài viết này mình mới đề cập đến HTML và CSS, bài viết sau mình muốn dành riêng cho JS bởi vì JS có rất nhiều vấn đề nhỏ cần nói về hiệu suất.

Nguồn: Devmaster via Viblo

 

 

 

Các bài viết cùng chủ đề

BÍ QUYẾT HỌC LẬP TRÌNH CHO CÁC BẠN ĐẦU NĂM HỌC MỚI ❤
BÍ QUYẾT HỌC LẬP TRÌNH CHO CÁC BẠN ĐẦU NĂM HỌC MỚI...
5 Phương pháp hay để mở rộng các dự án React của bạn một cách dễ dàng
5 Phương pháp hay để mở rộng các dự án React của b...
Lab06.1 - Data Access In ASPNET MVC 5
Lab06.1 - Data Access In ASPNET MVC 5
Lab05 - Data Validation and Annotation In ASPNET MVC 5
Lab05 - Data Validation and Annotation In ASPNET M...
Lab 04 - Model in ASP.NET MVC 5 - Phần tự thực hành
Lab 04 - Model in ASP.NET MVC 5 - Phần tự thực hàn...
Lab 04 - Model in ASP.NET MVC 5 - Bài 4.2
Lab 04 - Model in ASP.NET MVC 5 - Bài 4.2

Các khóa đào tạo chuyên đề

Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
Lập trình ứng dụng trên nền tảng android Lập trình ứng dụng trên nền tảng android
Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack

Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack
Lập trình ứng dụng với WINDOWS FORM Lập trình ứng dụng với WINDOWS FORM
Lập trình ứng dụng với JAVA (FORM) Lập trình ứng dụng với JAVA (FORM)
Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery
Lập trình frontend với reacjs (Full) Lập trình frontend với reacjs (Full)
DEVMASTER
Viện Công Nghệ Và Đào Tạo Devmaster

DEVMASTER ACADEMY

Địa chỉ: Tầng 6 - Tòa nhà VIỆN CÔNG NGHỆ
Số 25, Vũ Ngọc Phan - Láng Hạ - Đống Đa - Hà Nội

Hotline: 0969 609 003 | 0978 611 889

devmaster.contact@gmail.com

hna.tvchung@gmail.com

CÁC KHÓA HỌC CHUYÊN ĐỀ

  • Thiết kế và lập trình Website PHP, Laravel chuyên nghiệp - FullStack
  • Lập trình ứng dụng trên nền tảng android
  • Lập trình Ứng dụng với Công nghệ ASP.NET Core MVC, WebAPI, ReactJS - FullStack
  • Lập trình ứng dụng với WINDOWS FORM
  • Lập trình ứng dụng với JAVA (FORM)
  • Thiết kế và lập trình Ứng dụng với công nghệ Java (Java Framework springBoot, hibernate,...) - FullStack
  • Thiết kế và lập trình website với công nghệ HTML5, CSS3, Javascript, Bootstrapt 4, Jquery
  • Lập trình frontend với reacjs (Full)
Viện Công Nghệ Và Đào Tạo Devmaster

VIỆN CÔNG NGHỆ VÀ ĐÀO TẠO DEVMASTER - Học thực tế * Làm thực tế * Cam kết việc làm
Copyright by Ⓒ DEVMASTER 2015