Programarea aplicată pentru Web a început cu procesarea cererilor de utilizator și generarea dinamică a paginilor pe partea de server. Aceeași tendință sa dezvoltat și în limbile de programare a inserțiilor în documente HTML. Apoi au venit limba de programare a elementelor de documente HTML pe partea clientului. Ambele sunt legate de modelul de date HTML. Astăzi, atunci când Web-ul migrează în stivă de specificații XML, dezvoltatorii de software trebuie să țină cont de acest lucru și să reacționeze corect, permițând, de exemplu, manipularea elementelor de marcare XML. Standardul, conceput pentru a identifica și a rezolva această problemă, a fost denumit Document Object Model - DOM.
VBScript și JScript au însemnat asta
Microsoft se mișcă în aceeași direcție. Treptat, tehnologia Java a scăzut la nivelul instrumentelor de dezvoltare a aplicațiilor Web, iar direcția scenariului a devenit conceptul de DHTML (Dynamic HTML).
Și XML, DHTML și Java, în cele din urmă închise pe modelul de date Web, reprezintă un set de pagini Web care, din punctul de vedere al dezvoltatorilor de motoare de căutare XML, reprezintă un flux continuu de date eterogene [5]. Un document (pagină) este un subset al tuturor documentelor (paginilor) de pe Web. Modelul de date web este definit ca un grafic - o "pădure" de copaci.
Fig.1. Reprezentarea grafică a structurii documentului HTML
Pentru a reprezenta subiectul discuției noastre într-o formă mai simplă, vom lua un document HTML și îl vom "pregăti" din punctul de vedere al unui astfel de model de date grafic (figura 1). Întregul document este un element important al marcajului HTML. Documentul este un element bloc care nu se poate intersecta cu alte documente, dar poate conține blocuri, de exemplu, HEAD și BODY. În schimb, HEAD și BODY pot include și alte blocuri. În acest caz, elementul BODY din atributele sale este capabil să determine proprietățile întregului corp afișat al documentului, de exemplu, culoarea textului, culoarea de fundal sau, de exemplu, culoarea legăturilor hypertext. Dacă vă deplasați chiar mai departe în interiorul CORPULUI, atunci cu o probabilitate foarte mare într-un document tipic HTML puteți găsi un element de marcare IMG care are proprietățile proprii.
Acum numim nodurile obiectelor grafice, iar programele au voie sa schimbe proprietatile acestor obiecte. Spuneți valoarea atributului SRC al obiectului care corespunde elementului de marcare IMG. Puteți efectua astfel de modificări utilizând o metodă dintr-un set de metode standard comune atât pentru scripturile de limbă, cât și pentru Java. Toate acestea formează conceptul DOM - Document Object Model. DOM în sine este o interfață de programare a aplicațiilor în cadrul modelului de date Web sau, cu alte cuvinte, un set de metode standard de obiecte Web. Dacă doriți să trimiteți text în corpul documentului, puteți face acest lucru în orice limbaj de programare care acceptă DOM:
Aici este utilizată metoda standard de scriere a obiectului documentului. Numele metodei, valoarea pe care o returnează, argumentele metodelor și tipurile acestora sunt toate standardizate în DOM.
Astfel, modul de dezvoltare a tehnologiei Web constă în marcarea statică a HTML-ului prin intermediul limbajelor de scripting, Java și DHTML la specificațiile XML și DOM. Să ne ocupăm mai mult de etapele acestei căi.
Dezvoltarea tehnologiei de elaborare a documentelor
HTML presupune că documentul constă din elemente de marcare standard care sunt afișate într-un mod foarte specific. Un set de elemente HTML reprezintă tipizarea componentelor unui document tipărit comun: titluri, liste de diferite tipuri, paragrafe, tabele, citări etc. Astfel, toate elementele sunt împărțite în două tipuri: șir și bloc. Primul poate include un paragraf, o listă, un tabel. Pentru elemente de șir - italic sau saturație, link-uri de text hypertext. Toate acestea sunt definite în Definiția tipului de document al specificației HTML, care este scrisă pe SGML.
Regulile rigide pentru afișarea elementelor în fazele incipiente ale dezvoltării tehnologiilor Web au făcut posibilă furnizarea de cerințe clare și clare pentru browsere, precum și capacitatea de a umple rapid Web-ul cu informații. Pe măsură ce volumul de informații a crescut și structura setului de documente web a devenit mai complexă, simplitatea tehnologiei a început să devină un defect. A trebuit să copiem fragmentele de cod, să introducem noi elemente de marcare pentru a modifica formatele de imagine în funcție de context, să suportăm formate de fișiere grafice din ce în ce mai complexe.
De asemenea, trebuie avut în vedere faptul că crearea de site-uri Web a devenit acum un tip separat de activitate profesională. În același timp, nodul a devenit o marfă independentă, a cărei valoare nu trebuie să depășească limitele rezonabile determinate de scopul său funcțional (magazin virtual, serviciu de informații, nucleul sistemului corporativ, etc.). Începând cu aceasta, o anumită înțelegere a compoziției funcțiilor software-ului de pe site-ul web, tipizarea paginilor site-ului Web în funcție de scopul lor funcțional, compoziția componentelor și metodele de prelucrare a informațiilor pe pagini.
Introducerea rezultatelor execuției programului în document deschide mai multe posibilități. Astfel de inserții pot fi, de asemenea, de două tipuri:
Proiectul "exec cmd =" vă permite să introduceți rezultatul unui program extern, de exemplu data (introduceți data curentă) în document. Opțiunea "exec cgi =" vă permite să introduceți rezultatul executării cgi-script în document. Acesta este un instrument de design foarte puternic al site-ului, care vă permite să primiți cereri de la browsere prin intermediul motorului CGI și să generați pagini bazate pe rezultatele acestor solicitări. În acest fel, motoarele de căutare au fost inițial implementate în baze de date, iar ulterior motoarele de căutare pentru informații despre cuvintele cheie.
Ordinea de procesare a unei solicitări de la browser pentru a primi un document cu inserturi (Server Parsed Document) este după cum urmează:
Confirmați conexiunea și primiți o solicitare de la browser;- verificați dacă aveți permisiunea de a efectua înlocuiri în acest director;
Astfel, serverul este un interpret al limbajului SSI, adică Ca parte a modulelor server trebuie să existe un modul de interpretare SSI.
Interpretarea codului în elementul SCRIPT are loc numai în momentul încărcării inițiale a paginii. Controlul trece la interpret în momentul în care programul de parsare HTML "se împiedică" pe elementul de marcare SCRIPT. Codul este executat și rezultatul operării sale este introdus în document (dacă se poate face). Există o implementare tipică implementată pe partea clientului.
Odată cu apariția CSS în HTML, a devenit posibil să se utilizeze două elemente de marcare generalizate: DIV (bloc generalizat) și SPAN (element de marcare generalizată a liniei). Acum puteți crea o structură logică a documentelor și apoi puteți determina formatul afișajului.
Această abordare a schimbat întreaga tehnologie de design web. Acum, tipurile de pagini sunt determinate mai întâi, apoi structura logică a paginii pentru fiecare tip și, în sfârșit, pentru fiecare element logic, se determină compoziția și aspectul acesteia.
Până acum, a fost vorba de dezvoltarea tehnologiilor bazate pe elemente de marcare HTML și de modalitățile de plasare a acestora pe pagini. Dar există și un alt aspect al tehnologiei Web - limba de programare Java.
Inițial, Java nu intenționa să manipuleze obiectele din pagina HTML și, deși Duke se execută de-a lungul frontierei browserului Sun, Java a fost încorporat într-un document doar ca element de marcare a unui applet. Ca limbaj universal de programare pentru interfețe, mai ales grafice, Java a susținut tipuri și obiecte de date mai abstracte decât era necesar pentru programarea paginilor HTML.
Structura logică a documentului
DTD HTML definește regulile pentru construirea unui document HTML, sintaxa elementelor de marcare și posibila poziționare a acestora. Dacă vă uitați la document ca un set de obiecte care sunt asociate cu elemente de marcare, atunci DTD va specifica ierarhia de clasă a acestor obiecte.
Relațiile dintre obiectele individuale sunt reduse în principal la o relație "parțial la întreg", iar structura documentului este un copac. În rolul scheletului se află arborele elementelor de marcare ale documentului. Apoi, pe acest cadru sunt elemente de linie superioare și stiluri. În plus, documentul are o subtree a clasei de obiecte de document definite în DTD. Modificarea proprietăților unei clase modifică proprietățile tuturor obiectelor din clasă (a se vedea figura 2).
Fig. 2. Structura logică a documentului.
Obiectul de locație este asociat cu câmpul de localizare al browserului, unde este afișată adresa URL a documentului încărcat în fereastră. Locația are proprietăți și metode. Când se modifică valoarea proprietății locației sau când se solicită metoda, documentul este reîncărcat. Când se reîncarcă, o matrice protejată a obiectului istoric poate fi completat - setul de adrese URL vizitate de utilizator. Principala metodă de utilizare a istoricului sunt metodele window.history.back (), window.history.forward () și window.history.go (-1).
Obiectul navigator vă permite să afișați documentul în conformitate cu cerințele browserului și setările acestuia. Prezentarea acestui obiect fereastră pare oarecum ilogică: în ciuda multor ferestre deservite, programul de browser este unul. Cele mai utile proprietăți ale obiectului navigator, de exemplu fragmentul de cod, vă permit să încărcați pagini după tipul de navigator.
Dacă trebuie să verificați executarea codului Java din partea browser-ului, de exemplu, pentru a încărca o pagină cu sau fără un applet, puteți face acest lucru aplicând metoda corespunzătoare pentru obiectul navigator.
Un obiect de document este asociat cu un corp de document și include alte obiecte care pot fi numite, cum ar fi obiectele IMG sau FORM, și pot fi, de asemenea, parte dintr-o matrice încorporată, cum ar fi linkurile de hypertext (link-uri []).
Cele mai mari efecte vizuale sunt obținute prin schimbarea proprietății src a unui obiect IMG, care poate fi un obiect denumit document. De asemenea, vine în matricea built-in de document.images [].
Obiectul în sine este considerat ca un triple: proprietăți, metode, evenimente. Proprietățile sunt caracteristicile scalare ale unui obiect, metodele sunt funcții care pot schimba proprietățile. Evenimentele sunt influențe externe asupra unui obiect pentru care puteți scrie o funcție de manipulare a evenimentului. Este cu programarea evenimentelor asociate cu diverse efecte, cum ar fi colorarea imaginilor alb-negru sau modificarea imaginii când cursorul mouse-ului trece printr-o legătură hypertext.
Modelul obiectelor IE. Dynamic HTML
Stiluri crea o ierarhie separată de obiecte, și foarte mult depinde de selectorul de tip, care este descris în stil. Dacă acest marcaj de selectare de clasă, este una dintre ramurile obiectelor de copac din document, dacă selectorul de clasă, atunci este o ramură diferită a obiectelor de arbori din document, dacă identificatorul de obiect selector, atunci acesta este al treilea aspect al obiectului documentului.
Trebuie remarcat faptul că nu este necesar să se creeze un selector ID asociat în descrierile de stiluri pentru utilizare în markup ID în JScript - gestiona prin ea stiluri tot la fel este imposibil.
Orice eveniment poate fi asociat cu un element de marcare - acest lucru este realizat prin indicarea manipulatorului atribut al acestui element pentru acest eveniment. Cu alte cuvinte, toate elementele de marcare au întreaga listă de evenimente posibile și manipulatorii pentru aceste evenimente pentru fiecare clasă de caracteristici. Un programator, prin atributul handler, poate suprascrie acțiunea implicită.
În JScript, folosiți „balon“ metoda de manipulare eveniment. Acest lucru înseamnă că, dacă un obiect este un eveniment care se numește handler primul eveniment asociat cu obiectul, și apoi transmis de tratare a evenimentelor de eveniment pentru un obiect mai vechi în ierarhia obiect al documentului. Programatorul are capacitatea de a interzice transferul de evenimente de prelucrare la început.
Și atingerea finală a "portretului" JScript. Această limbă și modelul de date pot fi utilizate pentru a programa Active Server Pages (ASP). Principalul lucru nu este să se confunde între directivele JScript destinate interpretării pe partea de server și codul JScript care ar trebui să fie executate din partea browserului.
Interfața de programare a aplicațiilor DOM
- interfețe și obiecte pentru prezentarea unui document și manipularea lui;
- semantica interfețelor și obiectelor, inclusiv comportamentul și atributele acestora;
- interrelații și asociații de interfețe și obiecte.
Principala diferență dintre modelul de date DOM și modelul abstract de date SGML este că modelul SGML este construit în jurul datelor actuale. În limbile de programare orientate pe obiect pentru care se dezvoltă conceptul DOM, datele sunt încapsulate în obiecte care le ascund și le protejează de modificări. Puteți schimba datele numai utilizând metodele specificate în specificațiile obiectului. DOM definește metode de manipulare a datelor și a datelor pentru XML și HTML.
Specificația DOM cuprinde două părți: nucleul DOM și aplicația DOM la HTML. Kernelul oferă o completitudine funcțională pentru procesarea documentelor XML, precum și o bază pentru DOM HTML.
Motorul DOM vă permite să definiți un document ca un set de noduri care sunt legate între ele de relația părinte-copil, iar obiectul Document este cheia. Relația părinte-copil este definită în DOM după cum urmează:
Pe de altă parte, DOM definește un obiect Node care are o interfață NodeList care stabilește ordinea nodurilor copil ale obiectului Nod.
Dacă vă așteptați ca acum să fie o problemă a arborelui de interfață DOM, va trebui să vă întristați - nu există un astfel de copac în DOM. Fiecare interfață descrie un atribut și metode care, la rândul său, pot avea tipul de altă interfață. Puteți, bineînțeles, să încercați să construiți un astfel de copac, dar vreau să avertizez imediat că în coloană vor fi inele.
Descrierea interfeței date în ordinea alfabetică obișnuită și împărțit în descriere DOM Core si DOM HTML, iar în miezul interfețelor fundamentale sunt marcate. Trebuie remarcat faptul că descrierea interfeței - este de fapt descrierea clasei obiectului. Numai metode de clasă nu de punere în aplicare a metodelor care sunt listate în interfețele. Descrierea interfeței există unele variabile, dar, spre deosebire de Java, care are, de asemenea, un mecanism de interfață, acestea pot fi definite ca proprietățile imuabile și modificabile ale unei clase de obiecte. Punerea în aplicare a interfețe pentru limbaje de programare specifice -problem dezvoltatorii acestor limbi în descrierea claselor.
În DOM sunt considerate două niveluri de interfețe: stratul de bază, care funcționează cu noduri, este orientat spre aplicație în limbajul Java sau alte limbi de dezvoltare a aplicațiilor; Un strat de aplicație care operează obiecte de tip Document sau Element și în DOM HTML, clase specifice de obiecte HTML. Ultimul tip de interfețe este orientat spre limbile de scripting și poate fi utilizat de o gamă mai largă de programatori.
Interfețele de nivel superior, de exemplu interfața HTMLFromElement a secțiunii HTML DOM, vor fi definite în această notație după cum urmează: