10/10/2018, 11:26
Thiết kế website tối ưu
Nếu các bạn là lập trình viên thì đều biết website HTML (HyperText Markup Language) là website có tốc độ truy cập nhanh nhất, do không phải biên dịch ra mã HTML mà các ngôn ngữ khác hầu như phải làm điều này (nhưng ngôn ngữ sử dụng các control thay thế cho các control HTML), Website không phải kết nối tới database, không phải xử lý dữ liệu từ database để lấy về. Nên số lượng người truy cập rất lớn mới ảnh hưởng tới hệ thống.
Vậy làm sao để website như một trang HTML thuần túy? Mà nội dung vẫn cập nhật được khi muốn thay đổi dữ liệu và không phải lập trình lại?
“No connection, But the content is updated”
Đây là cách của tôi, dù bạn viết bằng bất kể ngôn ngữ nào thì tốc độ website cũng gần như là như nhau.
Trang chủ của website http://www.thietkewebsites.vn
Tôi chia trang chủ ra làm các phần khác nhau, mỗi phần là một file HTML. Tùy từng website khác nhau mà các bạn chia website ra các phần HTML khác nhau.
Phần menu trên cùng: đây là một file HTML chỉ chứa dữ liệu của menu, nó được tạo ra trong phần quản trị và để ở thư mục nào đó do tôi chỉ định. Trong phần quản trị các bạn phải viết code để tạo ra file này.
Bên dưới phần menu này là phần banner flash dữ liệu cũng lấy ra từ file HTML được tạo ra từ một chức năng trong phần quản trị của website.
Menu dịch vụ ở bên phải cũng vậy, dữ liệu cũng lấy ra từ một file HTML được tạo ra từ một chức năng trong phần quản trị của website…
Tương tự các phần dữ liệu khác của website cũng vậy đều được lấy từ file HTML tương ứng với phần đó và các file này tôi tạo ra ở một chức năng trong phần quản trị.
Vậy là trang chủ của website thietkewebsites.vn là một trang HTML thuần túy, không kết nối với database nhưng dữ liệu vẫn cập nhật được do các phần dữ liệu hiển thị ở trang chủ đều lấy từ những file HTML, mà các file HTML đều được quản lý trong phần quản trị mỗi khi có sự thay đổi dữ liệu tôi để tự động hoặc chủ động ghi lại các file HTML này. Vậy là “website tĩnh mà động”.
Các bạn có thể thắc mắc các trang con có làm việc như vậy không? Mỗi một trang con trong phần quản trị ta lại phải tạo ra các phẩn HTML để ghép lại với nhau, dữ liệu mà lớn thì quả là phức tạp cho việc quản trị. Vậy trang chủ và các trang con có gì khác nhau?
Trang chủ không có kết nối, nhưng các trang con có kết nối.
Những phần có dữ liệu ít hoặc ít thay đổi thì ta mới tạo ra file HTML để lưu nó.
Đó là các danh mục (menu), các khối dữ liệu tin mới, tin nóng, sản phẩm bán chạy, liên hệ trực tuyến, quảng cáo,…

Menu dịch vụ ở bên trái website là một file HTML
Còn phần có dữ liệu nhiều có phân trang vẫn phải kết nối tới database để làm việc, thường là các phần thông tin danh sách tin tức, sản phẩm, chi tiết tin tức, chi tiết sản phẩm, kết quả tìm kiếm …
Đây là chỉ là một trong nhiều cách để người lập trình tạo ra website có tốc độ truy cập nhanh nhất, hi vọng bài viết hữu ích cho cộng đồng lập trình web.
Tác giả: Duy Luật (thietkewebsites.vn)
Email: duyluat@gmail.com
Vậy làm sao để website như một trang HTML thuần túy? Mà nội dung vẫn cập nhật được khi muốn thay đổi dữ liệu và không phải lập trình lại?
“No connection, But the content is updated”
Đây là cách của tôi, dù bạn viết bằng bất kể ngôn ngữ nào thì tốc độ website cũng gần như là như nhau.
Trang chủ của website http://www.thietkewebsites.vn

Tôi chia trang chủ ra làm các phần khác nhau, mỗi phần là một file HTML. Tùy từng website khác nhau mà các bạn chia website ra các phần HTML khác nhau.
Phần menu trên cùng: đây là một file HTML chỉ chứa dữ liệu của menu, nó được tạo ra trong phần quản trị và để ở thư mục nào đó do tôi chỉ định. Trong phần quản trị các bạn phải viết code để tạo ra file này.
Bên dưới phần menu này là phần banner flash dữ liệu cũng lấy ra từ file HTML được tạo ra từ một chức năng trong phần quản trị của website.
Menu dịch vụ ở bên phải cũng vậy, dữ liệu cũng lấy ra từ một file HTML được tạo ra từ một chức năng trong phần quản trị của website…
Tương tự các phần dữ liệu khác của website cũng vậy đều được lấy từ file HTML tương ứng với phần đó và các file này tôi tạo ra ở một chức năng trong phần quản trị.
Vậy là trang chủ của website thietkewebsites.vn là một trang HTML thuần túy, không kết nối với database nhưng dữ liệu vẫn cập nhật được do các phần dữ liệu hiển thị ở trang chủ đều lấy từ những file HTML, mà các file HTML đều được quản lý trong phần quản trị mỗi khi có sự thay đổi dữ liệu tôi để tự động hoặc chủ động ghi lại các file HTML này. Vậy là “website tĩnh mà động”.
Các bạn có thể thắc mắc các trang con có làm việc như vậy không? Mỗi một trang con trong phần quản trị ta lại phải tạo ra các phẩn HTML để ghép lại với nhau, dữ liệu mà lớn thì quả là phức tạp cho việc quản trị. Vậy trang chủ và các trang con có gì khác nhau?
Trang chủ không có kết nối, nhưng các trang con có kết nối.
Những phần có dữ liệu ít hoặc ít thay đổi thì ta mới tạo ra file HTML để lưu nó.
Đó là các danh mục (menu), các khối dữ liệu tin mới, tin nóng, sản phẩm bán chạy, liên hệ trực tuyến, quảng cáo,…

Menu dịch vụ ở bên trái website là một file HTML
Còn phần có dữ liệu nhiều có phân trang vẫn phải kết nối tới database để làm việc, thường là các phần thông tin danh sách tin tức, sản phẩm, chi tiết tin tức, chi tiết sản phẩm, kết quả tìm kiếm …
Đây là chỉ là một trong nhiều cách để người lập trình tạo ra website có tốc độ truy cập nhanh nhất, hi vọng bài viết hữu ích cho cộng đồng lập trình web.
Tác giả: Duy Luật (thietkewebsites.vn)
Email: duyluat@gmail.com
Bài liên quan
Lấy đơn cử như Joomla có cache module, cache components, ... tuy nhiên không phải lúc nào cache cũng tốt.
Nếu thiết đặt cấu hình cache không tốt thời gian thực thi có thể lâu hơn là không cache.
Ngoài cache ra còn có thể sử dụng gzip để giảm lượng data trao đổi giữa browser và server giúp tăng tốc độ truy cập trang.
Như trang của bạn thietkewebsites.vn không có gzip.
Đôi lời.
Cách của mình nếu gọi là cache thật sự không chuẩn xác, vì mình không sử dụng các biến cache và nếu sử dụng cache vẫn phải có kết nối để load dữ liệu ra lần đầu tiên. Cách của mình là ghi dữ liệu ra file HTML, chỉ khi nào dữ liệu có sự thay đổi mình mới cập nhật lại các file HTML này. Nếu có kết nối dù chỉ là lần đầu tiên thì khi có lượng người truy cập rất lớn sẽ ảnh hưởng đến server rất nhiều. Nhưng cách của mình không có kết nối đến CSDL ngay cả lần đầu tiên vì nó chỉ là các file HTML thuần túy.
Đối với các CMS cache sẽ được tạo tự động sau một thời gian, ví dụ đặt cache time là 15s thì sau 15s có người dùng truy cập vào thì cache sẽ được tạo lại.
Còn với cách của bạn đề cập ở trên, bạn sẽ tự tạo cache khi có dữ liệu thay đổi.
Cache file tùy vào CMS mà họ có cơ chế tạo khác nhau, nhưng về nguyên tắc cache file sẽ giảm thiểu quy trình xử lý code và truy cập database, cache file tối ưu nhất chính là HTML.
Tuy nhiên cache file cũng có nhược điểm của nó, ví dụ một trang tin tức có khoảng 1 triệu bài viết, nếu cả 1 triệu bài viết này đều được tạo cache thì bạn thử hình dung xem 1 triệu bài viết ở dạng HTML sẽ chiếm dung lượng bao nhiêu ?
Cho nên dùng cache đúng cách sẽ tăng hiệu quả và ngược lại sẽ làm giảm hiệu quả, với mình thường chỉ tạo cache ở những trang truy cập database nhiều.
Ví dụ : Trang chủ, trang category,... còn với chi tiết từng bài viết thì không cần thiết lắm.