Render HTML là gì

Nội dung hướng đến người dùng, lược bỏ các hiệu ứng không cần thiết. Ưu tiên sử dụng cấu trúc HTML thông dụng.

Tối ưu việc sử dụng các đoạn mã bên thứ 3 để đo lường đánh giá hiệu quả nội dung. Khi sử dụng quá nhiều tập lệnh bên thứ 3 có thể gây tác động tiêu cực đến hiệu suất hiển thị, bảo mật, quyền riêng tư của người dùng.

Render là gì?

Render là một thuật ngữ dùng để chỉ hành động IN ra màn hình giá trị của biến trong PHP.

Dữ liệu đơn giản là gì?

Dữ liệu đơn giản là các kiểu dữ liệu đơn thuần trong PHP như:
  • Chuỗi (String)
  • Số nguyên (Integer)
  • Số có dấu chấm động (Float, Double, Decimal)
  • Kiểu dữ liệu Đúng/Sai (Boolean)

Ví dụ

Cho thông tin Sinh viên như sau:
  • Họ tên:Dương Nguyễn Phú Cường
  • Giới tính:Nam
  • Điểm lý thuyết:8
  • Điểm thực hành:10
=> Yêu cầu sử dụng PHP để khai báo các biến chứa giá trị tương ứng và RENDER ra màn hình với định dạng Danh sách Không thứ tự (UL) như trên.

Thực hành

Bước 1: tạo file render-du-lieu-don-gian.php trong thư mục gốc của dự án

Bước 2: viết code như sau



  
  
  
  
  
  
  Render dữ liệu đơn giản bằng PHP | NenTang.vn


  

Render dữ liệu đơn giản bằng PHP

Thông tin của Sinh viên

  • Họ tên:
  • Giới tính:
  • Điểm lý thuyết:
  • Điểm thực hành:

Bước 3: Kiểm tra kết quả

Xem kết quả tại: http://learning.nentang.vn/php/lessons/render-trong-php/render-du-lieu-don-gian.php
Sau khi đã nhận được render tree, trình duyệt đã có đủ thông tin để tính toán những phần tử nào, đặt ở đâu, kích thước ra làm sao, qua trình đó gọi là calculate layout, kết thúc quá trình tính toán này, trình duyệt sẽ bắt đầu quá trình paint, là những gì user sẽ thấy trên trình duyệt, đây cũng là bước cuối cùng.

Chúng ta hãy cùng sẵn sàng để bắt đầu chuyến hành trình tìm hiểu cách mà trình duyệt của bạn xử lý và biểu diễn một webpage nhé!

Trước tiên, chúng ta cần làm quen một vài người bạn sẽ theo chân chúng ta xuyên suốt hành trình:

Hầu hết các màn hình refresh 60 lần một giây và trình duyệt của chúng ta phải nắm được để đưa lên một tấm ảnh hoặc frame. Với mỗi lần refresh, trình duyệt luôn có một khoảng thời gian giới hạn cho việc này (khoảng 16.66ms) vì trình duyệt không chỉ phụ trách mỗi việc render hình ảnh, vậy nên tất cả những gì bạn muốn hiển thị đều cần phải hoàn thành trong 10ms.

Một thành phần bên trong browser chuyển các HTML tag thành một bộ lệnh tương ứng với hệ điều hành. Các trình duyệt khác nhau sẽ có render engine khác nhau, tuy rằng giữa chúng không có nhiều khác biệt lớn. Trong bài này cũng ta sẽ tập trung vào Blink - Render Engine của Chrome.

Bắt đầu nào!

Đầu tiên, chúng ta cần phải nói với trình duyệt về địa điểm đến thông qua URL

Render HTML là gì

Trình duyệt sẽ gửi một yêu cầu như sau:

Render HTML là gì

Sau đó chúng ta đợi cho đến khi server phản hồi:

Render HTML là gì

Sau khi tạo ra DOM tree, trình duyệt tiếp tục tao ra CSSOM (CSS Object Model) - giống như DOM nhưng nó dành cho CSS. Về cơ bản nó “map” các CSS style được cài đặt cho webpage.

Render HTML là gì

Đó là một quá trình phức tạp để có thể biết được định dạng CSS áp dụng lên các thành phần của HTML dựa trên một vùng chọn (selector). Bạn có thể tối ưu quá trình đó bằng cách:

Bạn có thể sử dụng phương pháp BEM để giúp bạn viết css với những vùng chọn đơn giản

https://css-tricks.com/bem-101/

  • Xóa các CSS không sử dụng

Có 2 lợi ích từ hành động này: thứ nhất, càng ít CSS càng ít công việc, giúp trình duyệt có thể xử lý nhanh hơn; thứ hai, giảm lượng dữ liệu cần tải, giảm thời gian cho việc loading.

Chúng ta đã xây dựng được DOM Tree và CSSOM Tree  dựa trên HTML và CSS, kết hợp lại chúng ta sẽ được Render Tree.  Render Tree chỉ chứa những gì hiển thị trên màn hình.

Trình duyệt sẽ duyệt qua các node của DOM tree và bỏ qua các node như meta tags, scripts tags và các node chứa CSS là display: none. Với các node được hiển thị đó, trình duyệt sẽ nối với CSS tương ứng của nó trên CSSOM.

Render HTML là gì

Sau khi hoàn tất quá trình này trình duyệt của bạn biết được CSS nào tương ứng với thành phần nào và sẽ tiếp tục tính toán không gian chiếm dụng và nó nằm ở đâu trên màn hình.

Nó là một quá trình đầy thách thức bởi vị trí các thành phần có ảnh hưởng lẫn nhau, ví dụ: Chiều rộng của sẽ ảnh hưởng đến chiều rộng của các tag bên trong (node con).

Để có thể xem chi tiết bạn cần sử dụng tab performance của chrome DevTools.

Render HTML là gì

Sau vài giây bạn sẽ nhận được kết quả như sau:

Render HTML là gì

Bạn có thể thấy sơ lược quá trình này ở phần tóm tắt.

  • Loading: Thời gian trình duyệt load các dữ liệu của bạn từ server.

  • Scripting: Thời gian trình duyệt phân tích script từ Javascript.

  • Rendering: Bao gồm 2 bước kể trên xác định kiểu tương ứng với từng thành phần và layout của webpage.

  • Painting: Trình duyệt tiến hành vẽ lên màn hình theo từng pixels

  • Other: các việc khác mà trình duyệt cần làm

  • Idle: Website sẵn sàng cho tương tác của user

Zoom lên một chút từ kết quả của DevTools ta có thể thấy 2 thanh màu tím:

Render HTML là gì

Thanh thứ nhất là lúc trình duyệt xác định kiểu CSS cho từng thành phần trên page, thanh thứ hai là phần trình duyệt tính toán layout để hiển thị các thành phần đó.

Painting là một tiến trình tô từng pixels trên màn hình và DevTools cũng cung cấp một option để minh họa quá trình này

Render HTML là gì

Các hình vẽ thường được vẽ trên nhiều lớp (layer). Bởi vì phương pháp này giúp các thành phần chuyển động trên trang thường xuyên được vẽ lại và xử lý mà ít ảnh hưởng đến những thành phần khác trên trang. Đây là một ví dụ về layer: 

Render HTML là gì

Trong bước này, trình duyệt kết hợp tất cả các lớp với nhau. Đây là một quá trình quan trọng, đặc biệt là đối với các yếu tố động. Mọi sai lầm ở bước này có thể gây ra trường hợp như là một phần tử sẽ xuất hiện chồng lên phần tử khác không chính xác.

Và cuối cùng là hoàn tất, chúng ta đã đi hết quá trình và đến nơi cần đến!

Mỗi hành động của người dùng tác động đến việc kích hoạt JavaScript đều dẫn đến sưu thay đổi, việc đó khiến cho trình duyệt của bạn phải hoạt động trở lại. Dưới đây là ba trường hợp và cách mà trình duyệt xử lý những thay đổi đó:

Một ví dụ cho trường hợp đầu tiên là tác động của người dùng dẫn đến thay đổi chiều rộng của một thành phần. Khi đó trình duyệt của bạn cần tính lại vị trí cho các thành phần trên màn hình bởi một thành phần thay đổi cũng ảnh hưởng đến các thành phần khác.

Ví dụ bạn thay đổi màu nền thì sẽ không có sự thay đổi nào về layout cả nên trình duyệt sẽ chỉ cần xử lý lại từ bước painting.

Nếu bạn biến đổi một thành phần không liên quan đến màu sắc (transform), trình duyệt chỉ cần thực hiện lại việc compose.

Render là gì HTML?

Render một trang web quá trình hiển thị trang web bắt đầu từ lúc bạn nhận được dữ liệu từ server đến khi trang web được hiển thị đầy đủ trên màn hình (bao gồm hình ảnh, âm thanh, chữ viết).

Render là gì JS?

nói nôm na thì render là việc hiển thị nội dung lên trình duyệt. Nội dung có thể được viết từ HTML, Javascript hay PHP,... Kết quả cuối cùng hiển thị nội dung đó trên trình duyệt cho người dùng sử dụng. Đó gọi là render.

Render trong PHP là gì?

PhpRender một hệ thống dựng template không định hướng, trong Script bạn có thể sử dụng ngôn ngữ PHP. Thông thường bạn tạo các file template HTML có đuôi . phtml để lưu script.