Идентификатор фрагмента

С Википедије, слободне енциклопедије
(преусмерено са Фрагмент идентификатор)

Идентификатор фрагмента у хипертексту је кратак низ знакова који се односи на извор који је подређен другом, примарном ресурсу. Примарни ресурс је идентификован од Uniform Resource Identifier (URI). Идентификатор фрагмента који се уводи са ознаком # је последњи део УРЛ-а и опциони је. Најчешће је кориштен за идентификацију неког конкретног дела документа. Генеричка синтаска је описана у RFC 3986. Сепаратор # не представља саставни део идентификатор фрагмената.

Основе[уреди | уреди извор]

У УРИ-у ознака # представља опциони део који се налази на крају УРЛ-а. Генеричка RFC 3986 синтакса за УРИ-је такође дозвољава опционе упите који почињу са знаком упита ?. У УРИ-ју који садржи упит и фрагмент, фрагмент иде иза упита. Делови упита зависе од УРИ шеме, нпр. http: подржава упите као што су ftp:. Фрагменти зависе од документа MИME типа и које обрађује клијента (Web browser). Клијент не би требало да шаље УРИ делове серверу када враћа документ,без помоћи локалне апликације фрагменти не учествују у HTTP преусмеравању.[1]

Синтаксно је дозвољено да се УРИ завршава са #, и треба да се сматра празним фрагментом. У MИME документма као што су text/html или другог XML типа, није дозвољено да празни идентификатори одговарају овим синтаксно правилним конструкцијама. Веб претраживач обично приказује врх документа за празан фрагмент.

Идентификатор фрагмента функционише другачије у односу на остатак УРИ-ја: наиме, обрада се врши искључиво на клијентској страни без учешћа веб сервера-наравно сервер обично помогне за утврђивање MИME типа, и MИME тип одређује обраду фрагмента. Када агент(као што је веб претраживач) захтева веб ресурсе од веб сервера, агент шаље УРИ серверу али не шаље и фрагменте. Уместо тога агент чека да сервер пошаље ресурсе, и онда агент обрађује ресурсе у зависности од типа документа и вредности фрагмента.[2]

Примери[уреди | уреди извор]

  • У УРИ-јима докумената MИME типа text/html за стране као што су http://www.example.org/foo.html#bar фрагмент се односи на елемент са id="bar" .
    • Графички веб претраживачи обично позиционирају странице тако да врх елемента идентификован фрагментом id буде поравнат са врхом прозора; према томе идентификатори фрагмента се често користе у табелама садржаја и у сталној вези (пермалинковима).
    • Појава елемената који су идентификовани може бити мењана кроз :target CSS псеудокласу; Википедија је користи да укаже на изабрану референцу. Наиме CSS display: block може да се користи да покаже садржај само ако је циљно, а иначе је скривен display: none.
    • Застарео name атрибут(дозвољен само за неке елементе) је имао сличну сврху у сада застарелим претраживачима. Ако је присутан name и id морају бити идентични.
  • У свим типовима XML докумената укључујући XHTML фрагменте који одговарају на xml:id или слични id атрибути прате name синтаксу и почињу словом, подвлаком или двотачком. Наиме они не могу да почну цифром или цртицом.
    • xml:id је један од ретких генеричких XML атрибута, на пример xml:lang који се може користити без експлицитног декларисања namespace. У XHTML id мора да се користи.
  • У XML апликацијама, идентификатор фрагмената у одређеној синтакси може бити XPointers, на пример идентификатор фрагмента у УРИ-ју

http://www.example.org/foo.xml#xpointer(//Rube) се односи на све XML елементе назване "Rube" у документу идентификованим унутар УРИ-ја http://www.example.org/foo.xml[мртва веза].

  • У RDF речнику, као што су RDFS, OWL, или SKOS, идентификатори фрагмената се користе за идентификацију ресурса у истом XML Namespace, али не одговарају нужно одређеном делу документа. На пример http://www.w3.org/2004/02/skos/core#broader

идентификује концепт "broader" у SKOS Core вокабулару, али се не односи на одређени део ресурса идентификованих од стране http://www.w3.org/2004/02/skos/core комплетног RDF фајла у коме семантика овог специфичног концепта је објављена, заједно са другим концептима у истом речнику.

  • У УРИ-јима докумената МИМЕ типа text/plain стандард RFC 5147 наводи идентификатор фрагмената за позиције и опсеге карактера и линија у оквиру докумената коришђењем кључних речи "char" и "line". Неки популарни прегледачи још увек не подржавају RFC 5147. На пример УРИ

http://example.com/document.txt#line=10,20 реферише на део од 10те до 20те линије.

  • У УРИ-ју за МИМЕ аудио и видео документе неколицина је дефинисала семантику фрагмената. Медији Фрагменти УРИ-јева 1.0 синтакса подржава адресирање медија извора дуж две димензије (временских и просторних) користећи кључне речи t и xywh. Према томе следећи УРИ може се користити у src атрибуту аудио или видео HTML5 елемената:
  • У JavaScript-у фрагмент идентификатору тренутне HTML или XHTML странице се може приступити у "хеш" власништву location.hash - треба имати на уму да се Javascript може користити и са другим типовима докумената. Са развојем AJAX-а неке странице користе идентификатор фрагмената да симулирају понашање дугмета за уназад (back button) на претраживачима за промене на страницама које не захтевају поновно учитавање, или да симулирају подстранице.
    • На пример, Gmail користи јединствен УРЛ за скоро сваки интерфејс- мејлове, резултате претраге и подешавања-фрагмент се користи да би ови интерфејси били директно везани.
    • Adobe Flash сајт користи део фрагмента да информише корисника о стању веб сајта или веб апликације, као и да олакша повезивање, често уз помоћ SWFAddress JavaScript библиотеке.
  • У УРИ-ју за MИME application/pdf документе ПДФ корисници препознају број идентификатор фрагмената. На пример, УРЛ који се завршава на .pdf#page=35 ће проузроковати за већину читаоца да отвори ПДФ и скролује на страну 35. Могући су још неки параметри, укључујући #nameddest=, #search="word1 word2", #zoom= итд. Више параметра могу бити комбиновати уз амперсент & :

Захтеви[уреди | уреди извор]

Неколицина захтева направљени су за идентификатор фрагменте да би се користио обичан текст документ или да се односи на локације унутар HTML документа у коме аутор није користио anchor тагове:

  • Од Септембра 2012 Media Fragments URI 1.0 носи W3C препоруку.
  • Python Package Index додаје MD5 знак фајла УРЛ-у као идентификатор фрагмента. Ако MD5 није откључан(то је откључана хеш функција), може да се користи да се осигура интегритет пакeta.
  • Хеш таг фрагмент је фрагмент који почиње са знаком узвика !. Знак узвика је забрањен у HTML, XHTML и XML идентификаторима, чиме се обезбеђује одвојеност од такве функционалности.
    • Google Webmaster Central је предложио и поставио стандард користећи почетни знак узвика у идентификатору фрагмената за AJAX странице: http://example.com/page?query#!state.
    • У Мозила фондацији један од радника Gervas Markham је предложио да идентификатор фрагмента за претрагу, буде форме #!s!search terms. Знак узвика је забрањен у anchor таговима, чиме се обезбеђује одвојеност од такве функционалности. Додајући број након ’s’ (#!s-3) претраживач би требало да тражи н-те појаве у претрази. Негативан број (#!s-3) почиње претрагу уназад од краја документа. ‘’Greasemonkey’’ скрипта је доступна да додаје функционалност компаратибилним прегледачима.
    • http://example.com/index.html#!s3!search terms
  • Erik Wilde и Marcel Baschnagel са ETH у Цириху проширили су ово да може да идентификује фрагмент као обичан текст документ користећи регуларне изразе, са кључном речи “match”. Такође описују прототип имплементације као екстензију(проширење) за Фајерфокс претраживач. На пример, следећи пример је за налажење текста осетљивог на велика и мала слова било где у документу:
  • K. Yee на Форсајт институту предлаже "проширени идентификатор фрагмената" повезан са колонама и кључном речи да би направио разлику од anchor идентификатора. Претраживач текста идентификатор фрагмента са "спецификацијом шеме фрагмента" тј "words" је први захтев у овој шеми. Следећи пример би претражио документ за прву појаву ниске "some-context-for-a-(search-term)" и онда ће подвући речи "search-term":
  • LiveURLs пројекат предложио је форму идентификатор фрагмената за указивање на област текста унутар странице, форме #FWS+C, где је F дужина прве речи(до пет карактера), W је прва реч,S је дужина селектованог текста и C је 32-битни CRC од селектованог текста. Они представљају варијанту ове шеме као екстензија(проширење) Фајерфокс претраживача, користећи форму #LFWS+C, где је L дужина самог фрагмента, у две хексадекадне цифре. Надовезујући се на реч "Фрагмент" користећи имплемантирану варијанту дало би:
  • Све до Фајерфокс 5, Фајерфокс је подржавао XPath линкове попут #xpath:/html/body/div[3] који се могу користити у конјукцији са обележивачем попут http://antimatter15.com/wp/2009/11/xpath-bookmark-bookmarklet/ да повежу са HTML документима који немају пристојан ID-s. Ова одлука је скинута као део чишћења кода у https://bugzilla.mozilla.org/show_bug.cgi?id=457102.

Референце[уреди | уреди извор]

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

Спољашње везе[уреди | уреди извор]

  • W3C Media Fragments Радна група, успоставља УРИ синтаксу и семантику за обраћање медиа фрагментима у аудио-визуелном материјалу (као што је регион у слици или под-снимак на видео).
  • MediaMixer Community Portal прикупља презентације, туторијале, користи случајеве и демонстранте који се односе на коришћење медија Фрагмент технологије.