Trình tạo trang tĩnh so với bộ nhớ đệm

  • Post category:lập trình


Bạn hỏi sự khác biệt giữa trình tạo trang tĩnh và bộ nhớ đệm là gì?

Câu trả lời ngắn gọn có thể là: cả hai đều không mang lại lợi ích kỹ thuật nào. Nhưng suy nghĩ đằng sau hai người là hoàn toàn khác nhau.

Tôi nghĩ chủ đề này quá thú vị nên để nó như vậy. Hãy nói về bộ nhớ đệm.

Trong nhiều năm nay, chúng tôi đã tạo ra các hệ thống giúp chúng tôi xây dựng trang web. Nhiều hệ thống trong số đó được xây dựng xung quanh ý tưởng về “trang web động”. Thay vì viết các trang HTML và CSS; chúng tôi đã thiết kế các hệ thống có thể tải thông tin từ nguồn dữ liệu (ví dụ: cơ sở dữ liệu MySQL); phân tích dữ liệu đó thành cái gọi là “mẫu” (đây giống như bản thiết kế cho các trang HTML); và cuối cùng gửi HTML được kết xuất cho khách hàng. Tất nhiên, một trang web không chỉ có HTML và CSS, nhưng đó là chủ đề của ngày khác.

Bây giờ hãy tưởng tượng bạn có nhiều khách truy cập vào trang web của mình, mỗi người trong số họ đều truy cập vào cùng một trang. Việc hiển thị trang đó cho mỗi lần truy cập sẽ yêu cầu nhiều tài nguyên máy chủ hơn là hiển thị trang một lần và gửi kết quả đó cho mọi người yêu cầu. Đó là một trang được lưu trữ. Bạn cũng có thể lưu vào bộ nhớ đệm các phần khác của ứng dụng. Ví dụ: không phải lúc nào cũng thực hiện cùng một truy vấn cơ sở dữ liệu mà thay vào đó lưu trữ kết quả của truy vấn đó và sử dụng lại nhiều lần.

Rõ ràng, bộ nhớ đệm còn nhiều tác dụng hơn những gì tôi vừa mô tả. Việc tôi thử định nghĩa chung cho bộ nhớ đệm trên web sẽ giống như thế này.

Khi một hoạt động sử dụng nhiều tài nguyên được thực hiện, hãy nhớ kết quả. Lần sau khi yêu cầu thao tác tương tự, bạn có thể chỉ đưa ra kết quả thay vì thực hiện lại thao tác đó.

Bộ nhớ đệm là một công cụ rất mạnh mẽ bao bọc xung quanh hệ thống của bạn, cho phép nó hoạt động hiệu quả hơn nhiều.

Stitcher và tất cả các trình tạo trang tĩnh thì ngược lại. Những công cụ này không quấn quanh hệ thống. Đúng hơn, cốt lõi của họ đầu ra HTML. Tất cả những thứ khác mà nhà phát triển cần để xây dựng trang web một cách suôn sẻ là cắm vào vào lõi đó. Nhược điểm là gì? Bạn sẽ phải hiển thị lại các phần của trang web trước khi chúng hiển thị cho khách truy cập. Một công việc tẻ nhạt. May mắn thay, máy tính rất giỏi thực hiện lặp đi lặp lại những nhiệm vụ tẻ nhạt giống nhau. Việc hiển thị lại trang web của bạn không thực sự là vấn đề khó khăn khi bạn có sẵn các công cụ phù hợp.

Một “nhược điểm” khác của trang web tĩnh? Nó đòi hỏi một chút suy nghĩ của nhà phát triển. Nhưng khi nào đó có thể là một điều xấu?

Vì vậy, các trang web tĩnh có nhược điểm của chúng. Nhưng hãy xem những thứ bạn có thể “cắm vào” lõi kết xuất HTML đó:

  • Tối ưu hóa hình ảnh: cho phép nhà phát triển sử dụng đặc tả hình ảnh phản hồi ở mức tối đa mà không cần bất kỳ công việc nào.

  • Biên dịch trước SASS: Tôi không phải là nhà phát triển giao diện người dùng, nhưng những người này nói với tôi rằng đó là điều bắt buộc.
  • Phân trang, trang tổng quan và trang chi tiết.
  • Phân tích cú pháp MarkDown, YAML và JSON thành các mẫu và sử dụng các mẫu đó như trong bất kỳ hệ thống động nào.
  • Giảm thiểu JavaScript và CSS: rất quan trọng đối với hiệu suất trang web.
  • Những việc như sắp xếp và lọc tập dữ liệu.

Tuy nhiên, một số thứ quan trọng vẫn còn thiếu trong Stitcher.

  • Hỗ trợ biểu mẫu: mặc dù Stitcher sẽ không bao gồm việc xử lý biểu mẫu ở cốt lõi. Đó sẽ là một mô-đun riêng biệt.
  • Lọc các tập dữ liệu ở giao diện người dùng: về mặt kỹ thuật thì điều này có thể thực hiện được, nhưng nó có thể có chi phí hiệu suất rất lớn tùy thuộc vào số lượng bộ lọc. Tuy nhiên, tôi sẽ làm việc đó trong tương lai.
  • Quản lý nội dung: điều này cũng có thể thực hiện được nhưng không phải từ cốt lõi của Stitcher. Nó sẽ là một mô-đun riêng biệt hoạt động như một ứng dụng khách để sửa đổi dự án Stitcher.

Nói rõ hơn: Tôi không nghĩ trình tạo trang tĩnh là giải pháp tốt nhất cho tất cả các trang web. Nhưng có rất nhiều trường hợp có thể được hưởng lợi từ việc sử dụng trình tạo trang tĩnh thay vì hệ thống động và bộ nhớ đệm. Tôi xem nhiều hệ thống bộ nhớ đệm giống như việc đặt một miếng băng lên vết thương, nhưng không phải vậy. khâu vết thương (ý định chơi chữ). Đừng quên rằng xóa bộ nhớ đệm là một trong những phần khó khăn nhất trong quá trình phát triển phần mềm. Nhưng chúng ta cũng nên thực tế: cách tiếp cận trang web tĩnh chủ yếu nhắm đến các trang web vừa và nhỏ, không phải các ứng dụng web phức tạp.

Vì vậy, nếu bạn muốn thử, hãy nhớ kiểm tra trình tạo trang tĩnh, có rất nhiều!



Trả lời