Iframe do lamusa?

1

http://natropie.onet.pl/galerie/wiezienna-pomyslowosc-nie-zna-granic,4241436,9103475,galeria-maly.html

Łatwo zauważyć, że jak się kliknie strzałkę, żeby zmienić zdjęcie, to przeładowuje się cała strona i przez to przewija się na górę.

Nie analizowałem kodu HTML, ale domyślam się, że jest to zrealizowane za pomocą wymyślnych działań JavaScriptu i CSS.

Ale pobieżna analiza kodu (ctrl+f i słowo "iframe") wykazuje, że autor strony całkowicie zapomniał, że HTML4 przewiduje znacznik "iframe", który jest bez problemów obługiwany przez wszystkie przeglądarki.

Wystarczyłoby wstawić "iframe" w miejscu zdjęcia, kilka linii JS, przede wszystkim po to, żeby pamiętać numer aktualnego zdjęcia, a klikanie strzałki uruchamia JS i wstawia do ramki "iframe" następne zdjęcia. Realizacja czegoś takiego byłaby chyba prostsza i pozbawiona powyższej wady.

I pytanie: Dlaczego profesjonali webmastrzy utrudniają sobie zycie unikając iframe, skoro iframe jest, jak kazdy znacznik, po to, żeby z niego korzystać?

0

Wydaje mi się że profesjonali webmastrzy nie przeładowują całej strony tylko po to aby zmienić obrazek.

0

Może chodzi o to, żeby strona była indeksowalna oraz każdy obrazek miał inny link, dzięki czemu możemy komuś podesłać linka do konkretnego zdjęcia? A może chodzi o to, żeby było jak najwięcej przeładowań strony - więcej przeładowań strony to więcej przeładowań reklam.

W każdym razie mnie interesuje jak zespół z GitHuba osiągnął efekt przeładowywania strony na swoim serwisie. Weźmy na przykład: https://github.com/mbien/jocl Klikam na jakiś odnośnik do podfolderu czy pliku i wtedy strona się przeładowuje, ale tego tak jakby nie widać. Efekt sugeruje użycie AJAXa do przeładowania części strony, ale przecież przeładowana została cała strona.

0
RFabianski napisał(a)

Wydaje mi się że profesjonali webmastrzy nie przeładowują całej strony tylko po to aby zmienić obrazek.

Zgadzam się w 100%.

Weźmy inny przykład, jakich można mnożyć:
http://www.elektroda.pl/
Akurat w tej nie, ale są takie strony, gdzie często zmienia się zakładki. W ogóle chodzi o to, że żeby zmienić zakladkę, to trzeba stronę przewijać do góry, bo jak się przewinie w dół, to zakładki uciekają.

Tutaj, aż prosi się, żeby zastosować "frameset" i w górnej ramce załadować plik HTML z zakładkami, a w dolnej ramce załadować resztę. Używając DHTML i CSS podobno da się taki efekt zrealizować, ale po co kombinować, jak można skorzystać z "frameset", który nadaje się do tego idealnie?

Wibowit napisał(a)

Może chodzi o to, żeby strona była indeksowalna oraz każdy obrazek miał inny link, dzięki czemu możemy komuś podesłać linka do konkretnego zdjęcia? A może chodzi o to, żeby było jak najwięcej przeładowań strony - więcej przeładowań strony to więcej przeładowań reklam.

Ten sam skutek sie osiągnie, jeżeli do ramki będą ładowane pliki HTML, tyle plików, ile jest obrazków, każdy odpowiednio nafaszerowany słowami kluczowymi, które nie pokażą się, bo ramka jest za mała.

0

No dobra mam frameseta z trzema ramkami A, B i C. W ramce A jest logo, w B są zakładki, w C jest treść. Google indeksuje treść z ramki C, powiedzmy, że zakładka o nazwie "Jak pociąć się żyletką?" ładuje treść do ramki C. Google indeksuje treść z ramki w C razem z linkiem. Potem ktoś wpada na ten link w Googlu i do niego przechodzi. Zamiast frameseta pokazuje mu się tylko ramka C z treścią. Żadnych zakładek ani logo nie widać.

Poza tym od czego masz klawisze Home i End na klawiaturze? Ano właśnie od tego, żeby natychmiastowo przewinąć stroną na samą górę czy sam dół.

0
Wibowit napisał(a)

No dobra mam frameseta z trzema ramkami A, B i C. W ramce A jest logo, w B są zakładki, w C jest treść. Google indeksuje treść z ramki C, powiedzmy, że zakładka o nazwie "Jak pociąć się żyletką?" ładuje treść do ramki C. Google indeksuje treść z ramki w C razem z linkiem. Potem ktoś wpada na ten link w Googlu i do niego przechodzi. Zamiast frameseta pokazuje mu się tylko ramka C z treścią. Żadnych zakładek ani logo nie widać.

O ile pamiętam, można automatycznie wykryć, czy jest otwarty cały frameset, czy tylko to, co powinno być w ramce i odpowiednio zadziałać, np. załadować cały frameset i przejść do żądanej strony.

0
Bilski napisał(a)

Akurat w tej nie, ale są takie strony, gdzie często zmienia się zakładki.

I co z tego, że się zmienia? To nie jest argument by korzystać z ramek.

Być może chodzi Ci o to, że mógłbyś mieć 50 podstron i gdybyś nie stosował ramek, to w każdym z tych 50 plików HTML miałbyś powtórzony kod zakładek. Gdybyś chciał dodać zakładkę, to musiałbyś wprowadzić tę zmianę w 50 plikach. A dzięki ramkom, kod menu mógłbyś mieć w oddzielnym pliku HTML i kłopotu by nie było.

Rozumowanie całkiem dobre, ale wiedza technologiczna słaba. Rozumowanie, że chcesz mieć jakąś rzeczy zdefiniowaną w JEDNYM miejscu, a nie w 50, jest super: spełnia zasadę DRY.

Ale podstawy backendowej wiedzy technologicznej wystarczyłyby żebyś wiedział, że w lepszy sposób zasadę DRY można by spełnić, stosując po stronie serwera jakiś dynamiczny język programowania: Python, Ruby, PHP -- cokolwiek. Tam masz instrukcje, które pozwalają na dołączenie treści jakiegoś pliku do innego pliku. Mógłbyś w 50 plikach po prostu dołączać menu, a mieć je zdefiniowane w jednym, oddzielnym pliku. Bez ramek. Zresztą, podobny efekt mógłbyś osiągnąć, stosując SSI (Server-Side Includes).

0

Tak wracając do tego iframe to w zasadzie też nie widzę zastosowania dla niego w tym wypadku, ostatecznie cała ta funkcjonalność ze zmianą obrazka ogranicza się do ustawienia src dla img i zmiany numeracji.

każdy obrazek miał inny link, dzięki czemu możemy komuś podesłać linka do konkretnego zdjęcia

To akurat nie stanowi większego problemu nawet w wypadku obsługi amiany obrazka JS-em.

0

To akurat nie stanowi większego problemu nawet w wypadku obsługi amiany obrazka JS-em.

Ale autor chce używać framesetów. Wg mnie używanie frameseta to przekombinowanie - skoro strona ma dziesiątki dynamicznych elementów to dodanie dynamicznej galerii to pikuś, ale zamiana strony na framesety już nie. Poza tym różne działy portalu mogą mieć różne layouty, co wtedy? Zmienianie framesetów co chwilę?

0
Wibowit napisał(a)

To akurat nie stanowi większego problemu nawet w wypadku obsługi amiany obrazka JS-em.

Ale autor chce używać framesetów. Wg mnie używanie frameseta to przekombinowanie - skoro strona ma dziesiątki dynamicznych elementów to dodanie dynamicznej galerii to pikuś, ale zamiana strony na framesety już nie. Poza tym różne działy portalu mogą mieć różne layouty, co wtedy? Zmienianie framesetów co chwilę?

Ja rozumiem, że frameset i iframe, oprócz plusów, ma również minusy. Tylko że zauważyłem, że używanie frameseta przez autorów jakby zanikło, niezwykle rzadko się to widzi, a jakiś czas temu był częściej wykorzystywany. Pytanie, dlaczego?

1

Ponieważ strona na framesetach wygląda nieprofesjonalnie. Kiedyś nie było praktycznie tanich technologii server-side, więc tworzono statyczne HTMLe i framesety, ale przecież pojawiło się PHP, które jest tanie dla hosterów, więc ludzie z tego korzystają. Iframe zostało wyparte przez AJAXa, tzn sporo frameworków webowych wspiera AJAXa w takim stopniu, że jego wykorzystywanie jest prostsze niż zabawa w iframe. Ogólnie wszystkie strony są teraz dynamiczne, a łatwiej zarządzać jednym plikiem, który zawiera zakładki, logo i inne pierdoły niż trzema + wykrywanie którego layoutu użyć, czy przeładować konfigurację framesetów, którą ramkę przeładować, itp

Do innych archaizmów (a może i nie) należy stosowanie znacznika

Weź sobie na przykład GMaila, Google Docs, Google Calendar czy inne rzeczy. To 100 % ECMAScript. Tyle, że nie ręcznie pisany, a wygenerowany z kodu Javowego (z użyciem GWT).

Framesety poza tym maja podstawowe wady. Nie mogą się przesuwać. Dzisiaj np strona ma czasem po bokach reklamy na całej długości. Przy framesetach zrobienie czegoś takiego byłoby niemożliwe, zakładając że po lewej jest menu, a po prawej też coś jest. Wtedy przewijałaby się tylko ramka środkowa z treścią, a boczne z reklamami już nie. Ponadto logo, zakładki, itp itd zajmują miejsce na ekranie, ja i pewnie spora część (jak nie większość) lubi skupić się na treści i przewinąć stronę tak, aby nie było widać żadnych zakładek i innych rozpraszających pierdół. Sporo stron ma też odnośniki typu "Przewiń do góry", "Przewiń na dół", "Przejdź to treści", itp

Nikt nie broni ci używać framesetów jeśli tak bardzo chcesz. Jednak przyniesie ci to więcej problemów niż korzyści.

1 użytkowników online, w tym zalogowanych: 0, gości: 1