Web Slices

Az Internet Explorer 8-as verziójában megjelent Web Slices szolgáltatás segítségével az oldalaink egy-egy szeletét egy mozdulattal beépíthetővé tehetjük a látogatóink böngészőinek kedvencei közé. Az adott oldalelem pontosan úgy fog kinézni a böngészőben, ahogy az oldalon látszik, továbbá lehetőségünk van arra is, hogy megadjuk az IE számára a frissítési és lejárati időt, így a böngészőben látható információk naprakészek lehetnek. Az egészben az a legjobb, hogy a megoldás használatához semmiféle külön szerveroldali támogatáshoz nincs szükség, mindössze néhány speciális CSS hivatkozási konvenciót kell betartanunk.
Slice az IE8 kedvencek eszköztárán
A Web Slice definíciója
Az oldalunk Web Slice definíciós elemének egyedi azonosítóval kell rendelkeznie (id
), és meg kell jelölni a speciális hslice
osztályal:
- <div id="slice" class="hslice">
Ezzel jelezzük az IE-nek, hogy a div
-ben lévő tartalom egy Web Slice-ot jelöl.
A slice nevét, vagyis azt a feliratot, ami megjelenik az IE Kedvencek fülön, az entry-title
osztállyal megjelölt HTML elem, illetve elemek tartalma jelöli ki. Több ilyen elem is lehet, ebben az esetben a IE a slice nevének az összefűzött tartalmat veszi:
- <div id="slice" class="hslice">
- <h2 class="entry-title">My Stuff</h2>
- <div class="entry-title">They are Cool</div>
A példában a slice felirata a „My Stuff They are Cool” lesz.
A slice tartalmába sem a hslice
-szal jelölt elemek, sem pedig a fejlécnek kijelölt elemek nem fognak bekerülni. A tartalmat a slice definíción belüli, entry-content
osztállyal megjelölt elem, és annak tartalma fogja jelölni:
- <div id="slice" class="hslice">
- <h2 class="entry-title">My Stuff</h2>
- <div class="entry-title">They are Cool</div>
- <div class="entry-content">
- <ul>
- <li>Item 1</li>
- <li class="a">Item 2</li>
- <li>Item 3</li>
- <li class="a">Item 4</li>
- <li>Item 5</li>
- <li class="a">Item 6</li>
- <li>Item 7</li>
- <li class="a">Item 8</li>
- </ul>
- </div>
- </div>
A példában az entry-content
div, és a benne lévő elemek megjelenése együtt adja a slice tartalmát.
Egy Web Slice magadásához mindössze ennyi szükséges. Ha az oldalt webszerveren keresztül nézzük (állományból nem fog működni), és rávisszük a kurzort a slice
elemre, az IE meg fogja jeleníteni az Add Web Slice eszköztárat az elem körül, minek segítségével a látogatóink egy kattintással hozzáadhatják az oldalunk adott elemét a böngésző Kedvencek eszköztárához.
Kikötések, megjegyzések
- Web Slice elemekben sem a bővítmények, sem pedig a szkriptek nem fognak működni, csak HTML és CSS tartalom adható meg.
- A szükséges CSS-t az IE a
head
elemből importálja automatikusan a megadott CSS hivatkozások alapján. Fontos megjegyezni, hogy azentry-content
elemen kívül eső CSS definíciók a slice megjelenítésekor nem kerülnek alkalmazásra, így oly módon kell kialakítani a slice-on belüli CSS-t, hogy az önálló egységként is meg tudjon jelenni (legjobb ehhez egy csak a slice-t és a CSS hivatkozásokat tartalmazó tesztoldalt gyártani). - Az
entry-content
-tel jelölt tartalomelemek is szerepelhetnek töbször egy slice-on belül, ilyenkor az IE az elemeket egymás után jelenítni meg. - Ha a slice-jaink tartalma változik, nem kell a felhasználóknak újra feltenni az eszköztárra, ezek a slice nézetablakán lévő frissítés gombbal újratölthetők.
A slice érvényességi idejének megadása
A slice definíción belül arra is lehetőségünk van, hogy megadjuk az IE-nek, hogy az adott tartalomrész információja mikor jár le. Például egy Web Slice-ban megjelenített akciós terméklista-ajánlat meddig érvényes? A slice lejárata előtt közvetlenül címsorának megjelenése vastagon szedett, dőlt betűre vált; lejárata után pedig szürke lesz. Persze a slice a lejárata után is kattintható marad, így a felhasználók az oldalunkat még fel tudják keresni a segítségével.
A Web Slice szabvány ennek megadására annyit köt ki, hogy a lejárati időt egy az endtime
osztállyal megjelölt elem title
attribútumában kell megadni UTC formátumban. A megvalósításnál jó szolgálatot tesz a HTML abbr
elem:
- <abbr class="endtime" title="2010-09-24T17:50:00-08:00"></abbr>
A lejárati idő definícióját bárhol elhelyezhetjük a slice elemen belül.
Automatikus frissítés: time-to-live
Az IE 8 a slice-ok tartalmát automatikusan frissíti a hírcsatorna beállítások közt megadott alapértelmezett intervallum szerint. Azonban abban az esetben, ha tudjuk, az oldalunkon publikált slice-ok akár hónapokig is érvényesek maradnak, az IE 8 automatikus frissítési kérelmei csak feleslegesen terhelnék a szerverünket a letöltésekkel. Ezen lehetünk úrrá a time-to-live (TTL) beállítás segítségével. A tényleges frissítés úgy történik, hogy az IE8 megnézni, mi a slice TTL értéke, ezt összehasonlítja a hírcsatorna beállításokban megadott frissítési intervallummal, és amelyik nagyobb, annak ütemezése szerint végzi az automatikus frissítést a slice-on.
A TTL megadására bármely, a ttl
osztállyal megjelölt slice-on belüli elem tartalma szolgál, ahol a tartalom a frissítési intervallumot adja meg percekben. Ezt rakhatjuk rejtett, de látható elembe is, bárhová a Slice definíción belül (nem muszáj az entry-content
-be tenni):
- <div id="slice" class="hslice">
- <h2 class="entry-title">My Stuff</h2>
- <div class="entry-title">They are Cool</div>
- <div class="entry-content">
- <ul>
- <li>Item 1</li>
- <li class="a">Item 2</li>
- <li>Item 3</li>
- <li class="a">Item 4</li>
- <li>Item 5</li>
- <li class="a">Item 6</li>
- <li>Item 7</li>
- <li class="a">Item 8</li>
- </ul>
- </div>
- <abbr class="endtime" title="2010-09-24T17:50:00-08:00"></abbr>
- <div class="ttl" style="display: none;">60</div>
- </div>
- <div id="slice" class="hslice">
- <h2 class="entry-title">My Stuff</h2>
- <div class="entry-title">They are Cool</div>
- <div class="entry-content">
- <ul>
- <li>Item 1</li>
- <li class="a">Item 2</li>
- <li>Item 3</li>
- <li class="a">Item 4</li>
- <li>Item 5</li>
- <li class="a">Item 6</li>
- <li>Item 7</li>
- <li class="a">Item 8</li>
- </ul>
- <p>Updated every <span class="ttl">60</span> minutes.</p>
- </div>
- <abbr class="endtime" title="2010-09-24T17:50:00-08:00"></abbr>
- </div>
Web Slice telepítése JavaScriptből
A beépített, rikítózöldre-keretező megoldáson kívül lehetőségünk van szkriptből is Web Slice-ot telepíteni a window.external.AddToFavoritesBar(url, title, type)
metódus meghívásával, melynek paraméterei:
- A Web Slice oldalára mutató, teljes URL, kiegészítve a slice azonosítójával, például
http://example.com/foo.html#mywebslice
, ahol az#mywebslice
a slice elem azonosítója. - A slice ideiglenes felirata a Kedvencek sávon. Amint letöltődik, ki fog cserélődni a slice markupban megadott feliratra (az
entry-title
osztályú elemekből). - Típusnak
"slice"
-t kell megadni.
A tartalom kiszolgálása hírcsatornán
Természetesen az IE 8 alkotói tisztában voltak azzal, hogy a slice-ok frissítésekor történő teljes oldalletöltés nagyobb oldalaknál teljesítményproblémákhoz vezethet, ezért lehetővé tették, hogy a Web Slice-jaink tartalmát hírcsatornák szolgálják ki.
A frissítéshez szolgáló URL-t egy rel="feedurl"
attribútummal ellátott HTML hivatkozással adhatjuk meg a slice elemen belül bárhol:
- <a rel="feedurl" href="http://example.com/mywebslice.xml" style="display:none;"></a>
A hírforrás formátuma a következő:
- <?xml version="1.0" encoding="utf-8" ?>
- <rss version="2.0">
- <channel>
- <!-- A csatorna neve -->
- <title>My Cool Slice Title</title>
- <!-- A slice oldalára mutató teljes URL -->
- <link>http://example.com/foo.html</link>
- <!-- Leírás -->
- <description>My Cool Slice Description</description>
- <!-- RSS TTL (ha más, mint a slice TTL, akkor a nagyobb érvényes) -->
- <ttl>60</ttl>
- <!--
- Web Slice elem
- Az IE 8 csak egy elemre számít a hírforrásban,
- ezért ha több van, akkor csak az elsőt veszi figyelembe
- -->
- <item>
- <!-- Az elem neve -->
- <title>My Cool Slice</title>
- <!-- A slice-ra mutató teljes URL -->
- <link>http://example.com/foo.html#mywebslice</link>
- <!-- Tartalom -->
- <description>
- <!-- HTML Web Slice markup -->
- </description>
- </item>
- </channel>
- </rss>
A channel
title
, description
és az item
title
elemek tartalma bármi lehet, a tényleges Web Slice feliratot a markup alapján határozza meg az IE. Ezek szerepeltetésére az RSS formátum miatt van szükség.
Egyéb funkciók
Lehetőség van kikapcsolni az oldalon a Web Slice megjelenítést a következő meta
tag segítségével:
- <meta name="slice" scheme="IE" content="off"/>
Ebben az esetben megszabadítjuk az oldalt a rikító zöld keret és Web Slice gomb ízléstelen megjelenítésétől, és helyette saját Web Slice hozzáadásra képes hivatkozásokat helyezhetünk el az oldalon, amiket a grafikusunk a saját elképzelése szerint tud megrajzolni.
Ha egy oldalon több slice is van, akkor az alapértelmezett megadására a következő link tag szolgál:
- <link rel="default-slice" type="application/x-hatom" href="webslice id"/>
Web Chunks – Web Slice-ok Firefoxon
Firefoxon a Web Slice-ok kezelésére a Web Chunks bővítmény hivatott. Pontosan ugyan azt tudja, mint az IE változat (bár itt a keret hupikék lett), azzal a plusszal, hogy Greasemonkey segítségével olyan weboldalakra is definiálhatunk Web Slice-ot, ahol az szerveroldalról nem valósították meg.
Összefoglalás
Nagyon jó dolog akar lenni ez a Web Slice. Látható, hogy a definíciója mindössze néhány HTML+CSS konvenció, a skálázhatósága is megoldott az RSS segítségével, szkriptből is lehet installálni, azonban három nagy probléma van vele:
- Egyelőre csak az IE 8 és a Firefox támogatja, ez utóbbi is csak egy plugin segítségével.
- Nagyon csúnya az a rikító zöld keret, amit az IE a slice-ok köré rajzol az oldalon. A megjelenése a legegyszerűbb designokat is képes totálisan elrontani. Ez szerencsére kikapcsolható, így saját Web Slice telepítési hivatkozásokat lehet tenni az oldalra, de sokkal egyszerűbb lenne az élet, ha maga a Web Slice markup lenne képes a keret és a telepítésre szolgáló gomb stíluslapjainak egyedivé tételére szolgáló stílusok megadására.
- A slice renderelésénél az IE (és a Web Chunk) nem veszi figyelembe a külső CSS definíciókat, csak a slice-on belül érvényeseket alkalmazza, így „agyondesign”-olt oldalakon igen nehéz Web Slice képes tartalomrészeket kialakítani (ez általában dupla munka a sitebuildereknek).
Ettől eltekintve egy nagyon előremutató technológiáról van szó, és csak remélni lehet, hogy a többi böngésző is elkezdi használni az új webes „szabványt”.
■
Hozsána
safari+dashboard
és?
vica versa
e
A "reszben masrol is szol"
Sajnos a Microsoft megint csak felig masolta le azt, ami tetszett neki.
FF 3.0.* only
Experimental addon