Tôi khá mới xây dựng trang web. Tuy nhiên, có một số kinh nghiệm trong LaTeX và một số ngôn ngữ lập trình khác.Thực hành tốt để bao gồm một menu trong một trang web?
Tôi thật sự cố gắng và tái sử dụng mã vv Vì vậy, khi xây dựng trang web của tôi, tôi muốn "bao gồm" ví dụ menu ở các trang khác, thay vì sao chép-dán một cách rõ ràng trong.
Có một số cách tôi biết có thể làm điều này:
- trình đơn là trang tĩnh, nội dung của bạn nằm trong iframe. Đây là cách tồi tệ nhất để làm điều này, vì nó phá vỡ rất nhiều thứ như back/forward etc ... (mà tôi biết có thể là mong muốn đối với một số người, nhưng không phải trong trường hợp của tôi).
Đây là những gì tôi đang sử dụng bây giờ là: tất cả các trang web bao gồm menu sử dụng iframe:
<iframe src="menu.html" class="menu" height="100%" frameborder="0"></iframe>
nhược điểm phương pháp này là: menu không được nạp lại đúng khi người ta xem lại trang web của bạn , trừ khi bạn sử dụng một số kịch bản mà cụ cho trình duyệt để làm điều này:
document.getElementById('some_frame_id').contentWindow.location.reload();
Đây là những gì tôi đã nghĩ đến việc kể từ khi máy chủ mới của tôi cho phép này: bao gồm các menu sử dụng SSI.
< !--#include virtual="/menu.html"-->
Nhược điểm có thể là mọi trang web phải cho phép bao gồm và do đó phải được phân tích cú pháp (điều này làm chậm hệ thống tệp). An ninh không phải là vấn đề đối với tôi.
Bạn sẽ đề xuất điều gì? Có quy tắc lịch sự về những gì nên được thực hiện? Có phải vấn đề tương thích với bất kỳ phương pháp nào được mô tả ở trên không? Có phương pháp tốt hơn không?
Ví dụ: Tôi nghi ngờ phương pháp thứ hai (hiện tôi đang sử dụng) phá vỡ lập chỉ mục google, vì vậy chỉ trang chủ của tôi được lập chỉ mục. (Tôi không chắc chắn nếu điều này là đúng mặc dù).
Đừng cố gắng tối ưu hóa sớm. Sử dụng SSI và, nếu có vấn đề về hiệu suất, hãy xem bạn có thể làm gì. Nhưng tôi cá là nó sẽ không bao giờ xảy ra. –
Việc lập chỉ mục của Google không được cập nhật. Máy chủ bao gồm phần HTML trước khi gửi cho khách hàng, có thể là trình duyệt của ai đó hoặc một trong các trình thu thập dữ liệu của Google. Kịch bản bao gồm nhận xét 'bao gồm' sẽ không bao giờ được gửi. – bigblind
@JBNizet: okay, tôi đọc trong [hướng dẫn này về cgi] (http://oreilly.com/openbook/cgi/ch05_02.html) rằng đây là một ý tưởng tồi. Tôi phải nói rằng tôi đã không nhận thấy bất kỳ vấn đề hiệu suất trong các trang mà tôi đã SSI. Có bất kỳ quy tắc/quy ước nào về cách đặt tên cho các trang (tiện ích mở rộng) không? Các trang hỗ trợ SSI của tôi được mở rộng '.shtml' ngay bây giờ, có vấn đề gì nếu tôi chỉ giữ mọi thứ' .html' (tôi biết điều này sẽ hoạt động, nhưng có ổn không khi làm)? – romeovs