[ kiborg @ 03.10.2003. 00:20 ] @
Hocu konkretan odgovor ako neko zna.
Da li je i zbog cega nepreporucljivo koriscenje frejmova pri izradi web sajta?
[ Dragan Varagic @ 03.10.2003. 07:34 ] @
Klasični frejmovi se sada mogu zameniti sa lejerima po CSS 2 standardu, ako se ne varam. Oni su mnogo čitljiviji za pretraživače, a ja ih lično ne volim jer mislim da takvi sadržaji mogu ići na posebne stranice.

Ono što nije dobro kod klasičnih frejmova:

1. Korisnik ima problem sa čuvanjem stranica koje su dublje u hijerarhiji pod frejmom (ovo se obično odnosi na manje iskusne korisnike).

2. Nemogućnost postavljanja stranica u Favourites (sem prve stranice pod frejmom).

3. Uglavnom ne postoji navigacija kada se pristupa direktnom URL-u stranice pod frejmom. Ovde poseban problem za webmastere predstavlja sistem rešavanja nezavisnog pozivanja različitih URL-ova

4. Frejmovi su veoma dobro rešenje za zaštićene delove sajta, gde obično nema potrebe za vođenje računa o negativnim korisničkim i pretraživačkim karakteristikama frejmova.

5. U poslednje vreme sajtovi sa frejmovima se bolje indeksiraju na petraživačima nego ranije, ali tu se opet javlja problem povlačenja navigacije.

6. Stranica u frejmu skoro uvek ima niži page rank (lošije se kotira) od konkurentnih stranica.

7. Sa aspekta pretraživača, nepostojanje title taga za stranicu pod frejmovima je katastrofalna za rejting (webmasteri obično ne postavljaju title tag za svaku stranicu posebno, jer se ne vidi od title taga glavne stranice pod frejmovima).

Dovoljno?
[ broker @ 03.10.2003. 10:33 ] @
Kao i sa svim drugim, web developeri umeju da preteruju i sa frejmovima. Stoji opsta preporuka da se frejmovi izbegavaju ali ne po svaku cenu. U nekim resenjima mogu da budu vrlo prakticni i korisni ako se koriste na pravi nacin. Ako nisu uporebljeni kako teba onda dolazi do nekih od problema koje je Dragan naveo (mada nisu bas tako ozbiljni kako izgleda na prvi pogled).

Najociglednije situacije kada frejmovi mogu da olaksaju navigaciju su sajtovi koji imaju obiman glavni meni. Koriscenjem frejma izbegava se njegovo ucitavanje svaki put u okviru strane sto itekako mnogo moze da ubrza ucitavanje i pirkazivanje svake strane na sajtu.

Kod dizajniranja sajta sa frejmovima teba voditi racuna o sledecem:

- osnovni frejm mora da ima title tag, kljucne reci description i sve ostalo kao i obicna strana. Obavezno moda da ima <noframes> sekciju koja sadrzajno moze da zameni frejm ali ne mora biti graficki doterana. Vazno je da na sebi ima sve bitne linkove kako bi sajt bio u potpunosti upotrebljiv.

- svaka strana koja se ucitava u frejm treba da bude tretirana kao da je samostalna a to znaci da ima title, keywords, description i obavezno negde u dnu tekstualne linkove ka drugim bitnim delovima sajta.

Ukratko: frejmove treba koristiti kao i svaku drugu web tehnologiju: onda kada za tim ima potrebe.
[ Rodd @ 03.10.2003. 15:55 ] @
Samo bih se slozio sa Brokerovom poslednjom konstatacijom.

Iz iskustva sam i sam shvatio da frejmove treba koristiti iskljucivo kada zadovoljavajuci efekat ne moze da se postigne ni jednom drugom metodom.

Ilustrovacu sopstvenim primerom: http://www.rodpetrovic.com/mykonos/noufaro

U ovom slucaju sam koristio frejmove ali samo zato sto sam smatrao da je to najlaksi nacin da postignem ovaj horizontal-scroll efekat.

Najveci problem sa frejmovima, po meni, je taj sto pretrazivaci indeksiraju i stranice koje treba da se nalaze "pod frejmom" pa tako nekim posetiocima, koji dodju sa nekog pretrazivaca, se prikazu stranice bez navigacije, headera, itd. Ovo je katastrofa koja se izbegava nekim JavaScript ili server-side tehnikama. U mom slucaju ja sam koristio obican:

Code:

if(top.frames.length != 3) top.location = 'index.html';


cime sam sve posetioce koji bi pozvali neku stranicu koja nije "u frejmu" preusmerio na frejm i pocetnu stranicu. Postoje naravno i naprednije skripte koje pozvanu stranicu otvaraju u frejmu koristeci JavaScript i URL string ali, sve se svodi na to da ako stvar mozete da resite bez frejma, zasto bi ste se toliko mucili?
[ kiborg @ 03.10.2003. 16:53 ] @
Hvala puno na iscrpnim odgovorima.
[ valajbeg @ 06.10.2003. 07:46 ] @
Iako sam na jednom projeku samoincjativno podjelio stranicu na dva frejma..
Ipak ovo gore sve sto je navedeno je upotpunostitacno..

no ima jedna interesantna stvar. od koje nebi trebalo dici ruke. a to je iframe.. sasvim pristojno.. mada prilikom pretrazivanja zna da napravi Sr-Nj-a do bola al' . :-P
[ broker @ 06.10.2003. 08:53 ] @
Citat:
Rodd:
...cime sam sve posetioce koji bi pozvali neku stranicu koja nije "u frejmu" preusmerio na frejm i pocetnu stranicu...


Ovo ti nije dobro. Ne smes da korisniku prikazes sadrzaj koji on ne ocekuje. Ako mu je pretrazivac nasao neki dokument i on hoce da ga otvori, onda treba i da ga otvori. Prebacivanjem na pocetnu stranu sajta korisnika zbunjujes i odbijas.

Ako vec hoces da nateras citac da otvori tvoj dokument u frejmu onda stavi skript koji taj dokument otvara u frejmu, mada je sasvim dovoljno da dokument sadrzi home link i linkvoe ka drugim dokumentima. Snaci ce se korisnik lako da i sam ode na pocetnu stranu ako mu bude interesantno to sto nadje na strani linkovanoj sa pretrazivaca.

[ Rodd @ 06.10.2003. 14:55 ] @
Citat:
broker:
Ovo ti nije dobro. Ne smes da korisniku prikazes sadrzaj koji on ne ocekuje. Ako mu je pretrazivac nasao neki dokument i on hoce da ga otvori, onda treba i da ga otvori. Prebacivanjem na pocetnu stranu sajta korisnika zbunjujes i odbijas.


Slazem se sa tobom. U generalnom slucaju to ne bih ni radio. Ali ovde je bila rec o vrlo malom sajtu koji se svodi na katalog, tako da, koji god sadrzaj sa tog sajta da neki korisnik trazi, ako ga bacim na homepage opet ce ga naci za cas.
[ euripyd @ 12.10.2003. 23:32 ] @
"Ako vec hoces da nateras citac da otvori tvoj dokument u frejmu onda stavi skript koji taj dokument otvara u frejmu"

Kako ide scripta? Zna li neko? Gde se stavlja?
[ Rodd @ 13.10.2003. 04:12 ] @
Evo sveze skripte za resenje ovog problema (sve je javascript).

Dakle imam frameset, npr:

Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Frameset</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
    function Prosledjena(imePromenljive){
    
        svePromenljive = location.search;
    
        svePromenljive = svePromenljive.substring(1, svePromenljive.length);
        svePromenljiveNiz = svePromenljive.split('&');
        
        var vrednostPromenljive = null;
        
        for(i=0; i<svePromenljiveNiz.length; i++){
            pomocniNiz = svePromenljiveNiz[i].split('=');
            if(pomocniNiz[0]==imePromenljive){
                vrednostPromenljive = pomocniNiz[1];
            }
            pomocniNiz = null;
        }
        
        return vrednostPromenljive;
        
    }
    
    function Redirekcija(){
        if(Prosledjena('strana')) lokacija = Prosledjena('strana');
        else lokacija = 'pocetna.html';
        
        if(document.all) window.frames('glavni').location = lokacija;
        else top.glavni.location = lokacija;
    }
</script>
</head>

<frameset cols="80,*" frameborder="NO" border="0" framespacing="0" onLoad="Redirekcija()">
    <frame src="navigacija.html" name="levi">
    <frame src="pocetna.html" name="glavni">
</frameset>
</html>


zatim, u header bilo koje stranice koja treba da se pojavi u desnom frejmu stavljam sledece:

Code:

<script language="JavaScript">
    if(top.frames.length != 2) top.location = "frame.html?strana=" + window.location;
</script>


...i to je to.

Ono sto se desava je sledece: kada klijent pozove neku stranicu koja treba da se otvara iskljucivo u desnom frejmu, skripta na toj stranici detektuje da stranica nije otvorena unutar frejma i vrsi redirekciju na frameset, s tim sto kroz url salje promenljivu "strana" koja sadrzi url stranice kojoj je klijent hteo da pristupi (ovo je poznatije kao HTTP GET metod). Skripta na stranici sa frameset-om onda preuzima tu promenljivu i vrsi redirekciju desnog frejma na tu stranicu.

Eto, nadam se da sam uspeo da pojasnim... a ako nisam... j*, malo sam umoran.

Uzivajte.
[ euripyd @ 13.10.2003. 09:42 ] @
Hvala Rodd, u 05.12.
Ti si i ovde i na onom drugom postu.