Pređi na sadržaj

Identifikator fragmenta

S Vikipedije, slobodne enciklopedije

Identifikator fragmenta u hipertekstu je kratak niz znakova koji se odnosi na izvor koji je podređen drugom, primarnom resursu. Primarni resurs je identifikovan od Uniform Resource Identifier (URI). Identifikator fragmenta koji se uvodi sa oznakom # je poslednji deo URL-a i opcioni je. Najčešće je korišten za identifikaciju nekog konkretnog dela dokumenta. Generička sintaska je opisana u RFC 3986. Separator # ne predstavlja sastavni deo identifikator fragmenata.

Osnove[uredi | uredi izvor]

U URI-u oznaka # predstavlja opcioni deo koji se nalazi na kraju URL-a. Generička RFC 3986 sintaksa za URI-je takođe dozvoljava opcione upite koji počinju sa znakom upita ?. U URI-ju koji sadrži upit i fragment, fragment ide iza upita. Delovi upita zavise od URI šeme, npr. http: podržava upite kao što su ftp:. Fragmenti zavise od dokumenta MIME tipa i koje obrađuje klijenta (Web browser). Klijent ne bi trebalo da šalje URI delove serveru kada vraća dokument,bez pomoći lokalne aplikacije fragmenti ne učestvuju u HTTP preusmeravanju.[1]

Sintaksno je dozvoljeno da se URI završava sa #, i treba da se smatra praznim fragmentom. U MIME dokumentma kao što su text/html ili drugog XML tipa, nije dozvoljeno da prazni identifikatori odgovaraju ovim sintaksno pravilnim konstrukcijama. Veb pretraživač obično prikazuje vrh dokumenta za prazan fragment.

Identifikator fragmenta funkcioniše drugačije u odnosu na ostatak URI-ja: naime, obrada se vrši isključivo na klijentskoj strani bez učešća veb servera-naravno server obično pomogne za utvrđivanje MIME tipa, i MIME tip određuje obradu fragmenta. Kada agent(kao što je veb pretraživač) zahteva veb resurse od veb servera, agent šalje URI serveru ali ne šalje i fragmente. Umesto toga agent čeka da server pošalje resurse, i onda agent obrađuje resurse u zavisnosti od tipa dokumenta i vrednosti fragmenta.[2]

Primeri[uredi | uredi izvor]

  • U URI-jima dokumenata MIME tipa text/html za strane kao što su http://www.example.org/foo.html#bar fragment se odnosi na element sa id="bar" .
    • Grafički veb pretraživači obično pozicioniraju stranice tako da vrh elementa identifikovan fragmentom id bude poravnat sa vrhom prozora; prema tome identifikatori fragmenta se često koriste u tabelama sadržaja i u stalnoj vezi (permalinkovima).
    • Pojava elemenata koji su identifikovani može biti menjana kroz :target CSS pseudoklasu; Vikipedija je koristi da ukaže na izabranu referencu. Naime CSS display: block može da se koristi da pokaže sadržaj samo ako je ciljno, a inače je skriven display: none.
    • Zastareo name atribut(dozvoljen samo za neke elemente) je imao sličnu svrhu u sada zastarelim pretraživačima. Ako je prisutan name i id moraju biti identični.
  • U svim tipovima XML dokumenata uključujući XHTML fragmente koji odgovaraju na xml:id ili slični id atributi prate name sintaksu i počinju slovom, podvlakom ili dvotačkom. Naime oni ne mogu da počnu cifrom ili crticom.
    • xml:id je jedan od retkih generičkih XML atributa, na primer xml:lang koji se može koristiti bez eksplicitnog deklarisanja namespace. U XHTML id mora da se koristi.
  • U XML aplikacijama, identifikator fragmenata u određenoj sintaksi može biti XPointers, na primer identifikator fragmenta u URI-ju

http://www.example.org/foo.xml#xpointer(//Rube) se odnosi na sve XML elemente nazvane "Rube" u dokumentu identifikovanim unutar URI-ja http://www.example.org/foo.xml[mrtva veza].

  • U RDF rečniku, kao što su RDFS, OWL, ili SKOS, identifikatori fragmenata se koriste za identifikaciju resursa u istom XML Namespace, ali ne odgovaraju nužno određenom delu dokumenta. Na primer http://www.w3.org/2004/02/skos/core#broader

identifikuje koncept "broader" u SKOS Core vokabularu, ali se ne odnosi na određeni deo resursa identifikovanih od strane http://www.w3.org/2004/02/skos/core kompletnog RDF fajla u kome semantika ovog specifičnog koncepta je objavljena, zajedno sa drugim konceptima u istom rečniku.

  • U URI-jima dokumenata MIME tipa text/plain standard RFC 5147 navodi identifikator fragmenata za pozicije i opsege karaktera i linija u okviru dokumenata korišđenjem ključnih reči "char" i "line". Neki popularni pregledači još uvek ne podržavaju RFC 5147. Na primer URI

http://example.com/document.txt#line=10,20 referiše na deo od 10te do 20te linije.

  • U URI-ju za MIME audio i video dokumente nekolicina je definisala semantiku fragmenata. Mediji Fragmenti URI-jeva 1.0 sintaksa podržava adresiranje medija izvora duž dve dimenzije (vremenskih i prostornih) koristeći ključne reči t i xywh. Prema tome sledeći URI može se koristiti u src atributu audio ili video HTML5 elemenata:
  • U JavaScript-u fragment identifikatoru trenutne HTML ili XHTML stranice se može pristupiti u "heš" vlasništvu location.hash - treba imati na umu da se Javascript može koristiti i sa drugim tipovima dokumenata. Sa razvojem AJAX-a neke stranice koriste identifikator fragmenata da simuliraju ponašanje dugmeta za unazad (back button) na pretraživačima za promene na stranicama koje ne zahtevaju ponovno učitavanje, ili da simuliraju podstranice.
    • Na primer, Gmail koristi jedinstven URL za skoro svaki interfejs- mejlove, rezultate pretrage i podešavanja-fragment se koristi da bi ovi interfejsi bili direktno vezani.
    • Adobe Flash sajt koristi deo fragmenta da informiše korisnika o stanju veb sajta ili veb aplikacije, kao i da olakša povezivanje, često uz pomoć SWFAddress JavaScript biblioteke.
  • U URI-ju za MIME application/pdf dokumente PDF korisnici prepoznaju broj identifikator fragmenata. Na primer, URL koji se završava na .pdf#page=35 će prouzrokovati za većinu čitaoca da otvori PDF i skroluje na stranu 35. Mogući su još neki parametri, uključujući #nameddest=, #search="word1 word2", #zoom= itd. Više parametra mogu biti kombinovati uz ampersent & :

Zahtevi[uredi | uredi izvor]

Nekolicina zahteva napravljeni su za identifikator fragmente da bi se koristio običan tekst dokument ili da se odnosi na lokacije unutar HTML dokumenta u kome autor nije koristio anchor tagove:

  • Od Septembra 2012 Media Fragments URI 1.0 nosi W3C preporuku.
  • Python Package Index dodaje MD5 znak fajla URL-u kao identifikator fragmenta. Ako MD5 nije otključan(to je otključana heš funkcija), može da se koristi da se osigura integritet paketa.
  • Heš tag fragment je fragment koji počinje sa znakom uzvika !. Znak uzvika je zabranjen u HTML, XHTML i XML identifikatorima, čime se obezbeđuje odvojenost od takve funkcionalnosti.
    • Google Webmaster Central je predložio i postavio standard koristeći početni znak uzvika u identifikatoru fragmenata za AJAX stranice: http://example.com/page?query#!state.
    • U Mozila fondaciji jedan od radnika Gervas Markham je predložio da identifikator fragmenta za pretragu, bude forme #!s!search terms. Znak uzvika je zabranjen u anchor tagovima, čime se obezbeđuje odvojenost od takve funkcionalnosti. Dodajući broj nakon ’s’ (#!s-3) pretraživač bi trebalo da traži n-te pojave u pretrazi. Negativan broj (#!s-3) počinje pretragu unazad od kraja dokumenta. ‘’Greasemonkey’’ skripta je dostupna da dodaje funkcionalnost komparatibilnim pregledačima.
    • http://example.com/index.html#!s3!search terms
  • Erik Wilde i Marcel Baschnagel sa ETH u Cirihu proširili su ovo da može da identifikuje fragment kao običan tekst dokument koristeći regularne izraze, sa ključnom reči “match”. Takođe opisuju prototip implementacije kao ekstenziju(proširenje) za Fajerfoks pretraživač. Na primer, sledeći primer je za nalaženje teksta osetljivog na velika i mala slova bilo gde u dokumentu:
  • K. Yee na Forsajt institutu predlaže "prošireni identifikator fragmenata" povezan sa kolonama i ključnom reči da bi napravio razliku od anchor identifikatora. Pretraživač teksta identifikator fragmenta sa "specifikacijom šeme fragmenta" tj "words" je prvi zahtev u ovoj šemi. Sledeći primer bi pretražio dokument za prvu pojavu niske "some-context-for-a-(search-term)" i onda će podvući reči "search-term":
  • LiveURLs projekat predložio je formu identifikator fragmenata za ukazivanje na oblast teksta unutar stranice, forme #FWS+C, gde je F dužina prve reči(do pet karaktera), W je prva reč,S je dužina selektovanog teksta i C je 32-bitni CRC od selektovanog teksta. Oni predstavljaju varijantu ove šeme kao ekstenzija(proširenje) Fajerfoks pretraživača, koristeći formu #LFWS+C, gde je L dužina samog fragmenta, u dve heksadekadne cifre. Nadovezujući se na reč "Fragment" koristeći implemantiranu varijantu dalo bi:
  • Sve do Fajerfoks 5, Fajerfoks je podržavao XPath linkove poput #xpath:/html/body/div[3] koji se mogu koristiti u konjukciji sa obeleživačem poput http://antimatter15.com/wp/2009/11/xpath-bookmark-bookmarklet/ da povežu sa HTML dokumentima koji nemaju pristojan ID-s. Ova odluka je skinuta kao deo čišćenja koda u https://bugzilla.mozilla.org/show_bug.cgi?id=457102.

Reference[uredi | uredi izvor]

  1. ^ RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax
  2. ^ Architecture of the World Wide Web, Volume One

Spoljašnje veze[uredi | uredi izvor]

  • W3C Media Fragments Radna grupa, uspostavlja URI sintaksu i semantiku za obraćanje media fragmentima u audio-vizuelnom materijalu (kao što je region u slici ili pod-snimak na video).
  • MediaMixer Community Portal prikuplja prezentacije, tutorijale, koristi slučajeve i demonstrante koji se odnose na korišćenje medija Fragment tehnologije.