Кіріспе
HTML, XHTML және XML құжаттарындағы объектілерді көрсету және олармен өзара әрекеттесу ережелері.
The Document Object Model (DOM) is a cross platform and language independent interface that treats an HTML or XML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers (also known as event listeners) attached to them. Once an event is triggered, the event handlers get executed. The principal standardization of the DOM was handled by the World Wide Web Consortium (W3C), which last developed a recommendation in 2004. WHATWG took over the development of the standard, publishing it as a living document. The W3C now publishes stable snapshots of the WHATWG standard. In HTML DOM (Document Object Model), every element is a node:
A document is a document node. All HTML elements are element nodes. All HTML attributes are attribute nodes. Text inserted into HTML elements are text nodes. Comments are comment nodes.
Құжаттық объектінің моделі (DOM) – HTML немесе XML құжатын әрбір түйіні құжаттың бір бөлігін көрсететін объекті болып табылатын ағаш құрылымы ретінде қарастыратын, платформадан тәуелсіз және тілге тәуелсіз интерфейс. DOM құжатты логикалық ағаш түрінде бейнелейді. Ағаштың әрбір тармағы түйінмен аяқталады, және әр түйінде объектілер болады. DOM әдістері ағашқа бағдарламалық түрде қол жеткізуге мүмкіндік береді; олардың көмегімен құжаттың құрылымын, стилін немесе мазмұнын өзгертуге болады. Түйіндерге оқиғаларды басқарушылар (сондай-ақ оқиға тыңдаушылары деп те аталады) қосылуы мүмкін. Оқиға орын алғаннан кейін, оқиғаларды басқарушылар орындалады. DOM стандартының негізгі жұмысын World Wide Web Consortium (W3C) жүзеге асырды, ол соңғы рет 2004 жылы ұсыныс жасады. WHATWG стандартты әзірлеуді қолға алып, оны жаңарып отыратын құжат ретінде жариялады. W3C қазір WHATWG стандартының тұрақты нұсқаларын жариялайды. HTML DOM (Document Object Model) жүйесінде әрбір элемент түйін болып табылады: құжат – құжат түйіні. Барлық HTML элементтері элемент түйіндері болып табылады. Барлық HTML атрибуттары атрибут түйіндері болып табылады. HTML элементтеріне енгізілген мәтін мәтін түйіндері болып табылады. Түсініктемелер – түсініктеме түйіндері.
The Document Object Model (DOM) is a cross platform and language independent interface that treats an HTML or XML document as a tree structure wherein each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers (also known as event listeners) attached to them. Once an event is triggered, the event handlers get executed. The principal standardization of the DOM was handled by the World Wide Web Consortium (W3C), which last developed a recommendation in 2004. WHATWG took over the development of the standard, publishing it as a living document. The W3C now publishes stable snapshots of the WHATWG standard. In HTML DOM (Document Object Model), every element is a node:
A document is a document node. All HTML elements are element nodes. All HTML attributes are attribute nodes. Text inserted into HTML elements are text nodes. Comments are comment nodes.
Тарих
Document Object Model тарихы 1990 жылдардың соңындағы Netscape Navigator және Microsoft Internet Explorer арасындағы "браузер соғыстарының" тарихымен, сондай-ақ веб-браузерлердің JavaScript қозғалтқыштарында кеңінен қолданылған алғашқы скрипт тілдері JavaScript және JScript-пен тығыз байланысты. JavaScript-ті Netscape Communications компаниясы 1995 жылы Netscape Navigator 2.0 құрамында жариялады. Netscape-тің бәсекелесі Microsoft келесі жылы JScript деп аталған JavaScript-тің қайта іске асырылуымен Internet Explorer 3.0-ды шығарды. JavaScript және JScript веб-дамытушыларға клиенттік жағындағы интерактивтілікпен веб-беттер жасауға мүмкіндік берді. Осы тілдердің бірінші нұсқаларында пайдаланушы жасаған оқиғаларды анықтау және HTML құжатын өзгерту мүмкіндігі шектеулі болды, бұл ақырында "DOM 0 деңгейі" немесе "Legacy DOM" деп аталды. DOM 0 деңгейі үшін тәуелсіз стандарт әзірленбеді, бірақ ол HTML 4 техникалық сипаттамаларында жартылай сипатталған. Legacy DOM қолжетімді элементтердің түрлерімен шектеулі болды. Форма, сілтеме және кескін элементтеріне түбір құжат объектісінен басталатын иерархиялық атау арқылы сілтеме жасауға болады. Иерархиялық атау элементтердің аттарын немесе тізбектелген индексін пайдалана алады. Мысалы, форманың кіріс элементіне document.myForm.myInput немесе document.forms[0].elements[0] арқылы қол жеткізуге болады. Legacy DOM клиенттік жағындағы форманы тексеруге және қарапайым интерфейспен өзара әрекеттесуге, мысалы, кеңес мезгілдерін жасауға мүмкіндік берді. 1997 жылы Netscape және Microsoft сәйкесінше Netscape Navigator және Internet Explorer 4.0 нұсқаларын шығарды, бұл жүктелген HTML құжатына өзгерістер енгізуге мүмкіндік беретін Dynamic HTML (DHTML) функционалдығын қосты. DHTML Legacy DOM-де қол жетімді қарапайым құжат объектісіне кеңейтулерді қажет етті. Legacy DOM іске асырылымдары JScript JavaScript-ке негізделгендіктен көбінесе үйлесімді болғанымен, DHTML DOM кеңейтулері әр браузер өндірушісімен параллель түрде әзірленді және үйлесімсіздіктерді сақтап қалды. DOM-ның осы нұсқалары "Intermediate DOM" деп аталды. ECMAScript стандарты қабылданғаннан кейін W3C DOM жұмыс тобы стандартты DOM спецификациясын әзірлеуді бастады. "DOM Level 1" деп аталған толыққанды спецификация 1998 жылдың соңында W3C ұсынысы болды. 2005 жылға қарай W3C DOM-ның көп бөлігі, соның ішінде Internet Explorer 6 (2001 жылдан бастап), Opera, Safari және Gecko негізіндегі браузерлер (мысалы, Mozilla, Firefox, SeaMonkey және Camino) сияқты кең таралған ECMAScript қолдауын көрсететін браузерлермен толық үйлесімді болды.
Стандарттар
W3C DOM жұмыс тобы өзінің соңғы ұсынысын жариялады және 2004 жылы таратылды. Даму жұмыстары WHATWG-ге көшті, ол тірі стандартты қолдауды жалғастыруда. 2009 жылы Веб-қолданбалар тобы W3C-де DOM қызметін қайта ұйымдастырды. 2013 жылы, жетіспеуші прогресс пен HTML5-тің жақын арада шығуына байланысты, DOM 4-деңгейлі спецификациясы аяқталуын жеделдету үшін HTML жұмыс тобына қайта тапсырылды. Осы уақытта, 2015 жылы Веб-қолданбалар тобы таратылды және DOM басқару құқығы Веб-платформалар тобына берілді. 2015 жылы DOM 4-деңгейі жарияланғаннан бастап, W3C WHATWG стандартының көшірмелеріне негізделген жаңа ұсынымдар жасайды. DOM 1-деңгейі HTML немесе XML құжатының толық моделін, соның ішінде құжаттың кез келген бөлігін өзгерту мүмкіндігін ұсынды. DOM 2-деңгейі 2000 жылдың соңында жарияланды. Ол getElementById функциясын, сондай-ақ оқиғалар моделін және XML атау кеңістіктері мен CSS қолдауын енгізді. 2004 жылдың сәуірінде жарияланған DOM 3-деңгейі XPath және пернетақта оқиғаларын өңдеуді, сондай-ақ құжаттарды XML ретінде сериалдау интерфейсін қосты. HTML5 2014 жылдың қазан айында жарияланды. HTML5-тің бір бөлігі DOM 2-деңгейлі HTML модулін алмастырды. DOM 4-деңгейі 2015 жылы жарияланды. Бұл WHATWG тірі стандартының көшірмесі болып табылады.
Веб-браузерлер
HTML беті сияқты құжатты көрсету үшін көптеген веб-браузерлер DOM-ға ұқсас ішкі модельді пайдаланады. Кез келген құжаттың түйіндері DOM ағашы деп аталатын ағаш тәрізді құрылымда ұйымдастырылған, ал ең жоғарғы түйін "Document object" деп аталады. HTML беті браузерде көрсетілген кезде, браузер HTML-ді жергілікті жадқа жүктеп алып, оны автоматты түрде талдайды және бетті экранда көрсетеді. Дегенмен, DOM міндетті түрде ағаш ретінде ұсынылуы керек емес, және кейбір браузерлер басқа ішкі модельдерді қолданған.
DOM ағаштық құрылымы
Document Object Model (DOM) tree – HTML немесе XML құжатының иерархиялық құрылымы. Ол түбір түйінінен тұрады, ол құжаттың өзі, және құжаттың элементтерін, атрибуттарын және мәтіндік мазмұнын көрсететін бағынышты түйіндердің тізбегі. Ағаштың әрбір түйінінің, түбір түйінінен басқа, аналық түйіні болады және бірнеше бағынышты түйіні болуы мүмкін.
Мәтін түйіндері
Элементтің ішіндегі мәтіндік мазмұн DOM ағашында мәтіндік түйін ретінде көрсетіледі. Мәтіндік түйіндерде атрибуттар немесе басқа түйіндер болмайды, және олар әрқашан ағаштың жапырақ түйіндері болып табылады. Мысалы, жоғарыдағы мысалдағы title элементіндегі "My Website" және h1 элементіндегі "Welcome" мәтіні мәтіндік түйіндер арқылы көрсетілген.
Қолданылу
DOM кез келген бағытта (мысалы, ата-анасы мен алдыңғы туысқан элементі) өтуді қолдайтындықтан және кез келген өзгерістерге рұқсат беретіндіктен, оны іске асыру осы уақытқа дейін оқылған құжатты (немесе оның талданған бір түрін) сақтауы тиіс.
Лайоутты қозғалтқыштар
Веб-браузерлер HTML-ді DOM-ға түрлендіру үшін макеттеу жүйелеріне сүйенеді. Кейбір макеттеу жүйелері, мысалы Trident/MSHTML, негізінен немесе тек Internet Explorer сияқты нақты бір браузермен байланысты. Ал Blink, WebKit және Gecko сияқты басқалары Google Chrome, Opera, Safari және Firefox сияқты бірнеше браузерлерде қолданылады. Әртүрлі макеттеу жүйелері DOM стандарттарын әртүрлі дәрежеде сақтайды.