2012-01-24 9 views
5

Jestem całkiem nowy w budowie strony internetowej. Jednak mają pewne doświadczenie w LaTeX i niektórych innych językach programowania.Dobre praktyki dotyczące umieszczania menu na stronie internetowej?

naprawdę spróbować i ponowne wykorzystanie kodu itd. Tak więc, gdy buduje moją stronę, chcę „obejmują” na przykład menu w innych stronach, w zastępstwie wyraźnie kopia wklejanie go w.

Mogę to zrobić na kilka sposobów:

  • Menu to strona statyczna, a zawartość jest w ramce pływającej. To jest najgorszy sposób, aby to zrobić, ponieważ łamie wiele rzeczy, takich jak powrót/do przodu itp. (Co dla niektórych może być życzliwe, ale nie w moim przypadku).
  • To co używam teraz: każda strona internetowa zawiera menu przy użyciu iframe:

    <iframe src="menu.html" class="menu" height="100%" frameborder="0"></iframe> 
    

    Wadą tej metody jest: menu nie zostanie załadowany poprawnie, gdy ludzie ponownie swoją stronę , chyba że używasz niektóre skrypty, które specyficznie informuje przeglądarkę, aby to zrobić:

    document.getElementById('some_frame_id').contentWindow.location.reload(); 
    
  • to właśnie miał na myśli od mojego nowego hosta pozwala na to: w tym menu przy użyciu SSI.

    < !--#include virtual="/menu.html"--> 
    

    Ewentualny minusem jest to, że każda strona internetowa musi pozwalać na obejmuje, a zatem musi być analizowany (to spowalnia system plików). Bezpieczeństwo nie jest dla mnie problemem.

Co byś polecił? Czy istnieją zasady uprzejmości, co należy zrobić? Czy występują problemy ze zgodnością z jedną z opisanych powyżej metod? Czy istnieją lepsze metody?

Na przykład: Podejrzewam, że druga metoda (której teraz używam) powoduje przerwanie indeksowania google, więc tylko moja strona główna zostanie zindeksowana. (Nie jestem pewien, czy to prawda).

+4

Nie próbuj optymalizować przedwcześnie. Użyj SSI, a jeśli wystąpi problem z wydajnością, sprawdź, co możesz zrobić. Ale założę się, że to się nigdy nie wydarzy. –

+0

Indeksowanie google nie jest rozwijane. Serwer zawiera fragment HTML przed wysłaniem go do klienta, czy to czyjąś przeglądarką, czy jednym z robotów google. Skrypt zawierający komentarz "uwzględnij" nigdy nie zostanie wysłany. – bigblind

+0

@JBNizet: dobra, czytałem w [ten samouczek na cgi] (http://oreilly.com/openbook/cgi/ch05_02.html), że jest to zły pomysł. Muszę powiedzieć, że nie zauważyłem żadnych problemów z wydajnością na stronach, które już mam SSI. Czy istnieją jakieś zasady/konwencje dotyczące nazwania stron (rozszerzeń)? Moje strony z obsługą SSI są teraz rozszerzone '.shtml', czy jest jakiś problem, jeśli po prostu zachowam wszystko' .html' (wiem, że to zadziała, ale czy można to zrobić)? – romeovs

Odpowiedz

3

Aby to zrobić, użyj czegoś takiego jak dołączenie do strony serwera. Inni twórcy stron internetowych mogą używać PHP lub Python lub niektórych szablonów, ale ostatecznie wzór jest taki, że dane wyjściowe HTML są duplikowane, ale HTML w twoim systemie szablonów nie jest.

Twoja troska o zwolnienie zasiłku SSI jest bezpodstawna. SSI jest niesamowicie szybki, a serwer internetowy będzie wykorzystywał te same optymalizacje, które renderowałby jedną stronę; może buforować go w pamięci i przetwarzać w locie.

Biorąc pod uwagę, że po prostu chcesz uniknąć duplikowania kodu HTML, zasada SSI brzmi jak dobry sposób na odejście, zwłaszcza jeśli już działasz dobrze. Jego wadą jest brak zaawansowanych funkcji programistycznych. Ale prędkość nie jest w zasadzie problemem z SSI; to jedno z najszybszych rozwiązań. Nie wpływa również na indeksowanie Google; Google widzi tylko wygenerowany HTML, a nie SSI. SSI jest po stronie serwera.

0

1.) Jednym szybkim sposobem zarządzania tym jest użycie szablonów DreamWeaver. Dowolny blok HTML można przekształcić w szablon. Szablon może być używany na dowolnej stronie w Twojej witrynie. Szablony są zarządzane jako zasób w DreamWeaver.Edytuj szablon, a DreamWeaver aktualizuje wszystkie miejsca, w których ten szablon jest używany na stronach Twojej witryny. Narzędzie nie jest bezpłatne. Inne bezpłatne technologie:

2.) Silnik szablonów prędkości napędza wiele stron na stronie apache.org. Możesz użyć ANT do wygenerowania swojej strony internetowej. http://velocity.apache.org/engine/devel/webapps.html

3.) Jeśli robisz coś z Javą ... sprawdź JFS i Facelets. http://www.ibm.com/developerworks/java/library/j-facelets/

1

w HTML5 można to zrobić łatwo z tagiem Object, np

<object data=menu_page.html type="text/html" style="usual css..." ></object> 

Musisz określić położenie, szerokość i wysokość za pomocą CSS. Więc jeśli to html strukturalny zamiast zawartości tekstowej, można umieścić go w warstwie tła przy użyciu style="z-index:-1;position:absolute;top:0;left:0; width:100%;height:100%"

To wydaje się działać w najnowszych przeglądarkach (tesing na Safari i Chrome)

przewagę nad SSI:

  • Klient może przechowywać w pamięci podręcznej często powtarzające się elementy nagłówka, zmniejszając wykorzystanie przepustowości.
  • Możesz przeglądać swoje strony w trybie offline w przeglądarce, jak je zapisujesz, bez żadnego serwera.
Powiązane problemy