Documente Academic
Documente Profesional
Documente Cultură
1
CUPRINS
2
INTRODUCERE
3
CAPITOLUL I
AVANTAJE ECONOMICE
După cum citează Big Commerce, „comerțul electronic crește cu 23% de la un an la altul
și, potrivit specialistului de marketing, vânzările globale de comerț electronic sunt de așteptat să
depășească 29 de trilioane de dolari în 2022 – și acestea sunt doar statistici pentru sectorul de
retail”. Comerțul electronic a devenit o dinamică fundamentală a economiei de-a lungul anilor.
Capacitatea sa de a permite companiilor să se extindă la o gamă mai largă de consumatori,
precum și capacitatea sa de a permite clienților să facă cumpărături în mod convenabil, au
contribuit la creșterea și semnificația sa.
Caracterul practic al comerțului electronic l-a determinat să devină piața de retail cu cea
mai rapidă creștere. Pandemia Covid-19 a contribuit și mai mult la dezvoltarea comerțului
4
electronic. Pe măsură ce tot mai mulți oameni renunță la socializare și recurg la distanțare
socială, izolare, carantină sau evitarea locurilor publice sau a zonelor aglomerate, clienții au
apelat la o platformă convenabilă pentru a face achiziții, piața online. Astfel, numărul total de
clienți, care revin și cei care se încep pentru prima dată a prevalat.1
Magazinele de comerț electronic sunt disponibile în orice moment. Clienții pot face
cumpărături la orice oră din orice zi din timpul anului. În acest caz, clienții, în special cei care de
obicei nu au timp la dispoziție pentru a face cumpărături convenționale, pot face orice achiziție
oricând prin vizitarea site-ului. Astfel de site-uri web facilitează cumpărăturile datorită
1
Bunnell, David (16 May 2001). "The eBay Business Model". The ebay Phenomenon: Business Secrets Behind the
World's Hottest Internet Company. John Wiley & Sons. pp. 71–81. ISBN 9780471436799.
2
Mcnair, Corey (29 January 2021). "Worldwide Retail and Ecommerce Sales: eMarketer's Updated Forecast and
New Mcommerce Estimates for 2022—2025". eMarketer. Insider Intelligence Inc.
5
designului lor convenabil. De exemplu, produsele sunt clasificate în categorii care ajută clienții
să aibă comenzi rapide. Mai mult, acest tip de cumpărături este perfect pentru persoanele care
lucrează ore lungi și nu își găsesc timp pentru a merge la magazinele cu amănuntul. Un bun
exemplu de astfel de site-uri web sunt AmazonFresh, Target și Walmart.
3
DeLone, William H.; McLean, Ephraim R. (8 December 2014). "Measuring e-Commerce Success: Applying the
DeLone& McLean Information Systems Success Model". International Journal of Electronic Commerce. 9 (1): 31–
47.
6
Comerțul electronic are o gamă largă de mărfuri și facilități, consumatorii pot vedea o
gamă variată de produse și servicii pentru a alege cele mai bune dintre ele, spre deosebire de
sistemul tradițional de marketing, se poate vedea doar un stoc limitat. Într-un magazin
convențional obișnuit, clienții s-ar putea pierde în timp ce se plimbă de la culoar la altul căutând
mărfuri. Cu toate acestea, cu serviciile de comerț electronic, clienții pot căuta în categoriile de
mărfuri sau pot profita de instrumentul de căutare al paginii web și pot găsi în cel mai scurt timp
produsul dorit.
4
Bakos, Yannis (2001). "The Emerging Landscape for Retail E-Commerce". Journal of Economic Perspectives. 15
(1): 69–80
7
A viza oamenii potriviți este un factor cheie în promovarea serviciilor de comerț
electronic. Furnizorii online colectează o marecantitatea de date ale consumatorilor pentru a se
asigura că vizează publicul potrivit pentru produsele lor. De exemplu, dacă promovează un
produs orientat spre bărbați, ei sunt capabili să vizeze un sex și să obțină mai multe angajamente
și, ca rezultate, să obțină mai multe achiziții. Același lucru este și în cazul promovării altor
servicii personalizate pentru diferite grupe de vârstă.
Locația este o problemă de care proprietarul unei afaceri de comerț electronic nu își face
niciodată griji în conducerea unei afaceri. Tot ce este necesar sunt dispozitive electronice, cum ar
fi laptopuri sau telefoane mobile și conexiune la internet. Prin urmare, comerțul electronic
simplifică procesele de afaceri cu mai multă viteză și eficiență.
8
CAPITOLUL II
HTML5 a fost lansat pentru prima dată într-o formă publică pe 22 ianuarie 2008, cu o
actualizare majoră și starea „Recomandare W3C” în octombrie 2014. Obiectivele sale au fost să
îmbunătățească limbajul cu suport pentru cele mai recente caracteristici multimedia și alte funcții
noi; pentru a menține limbajul atât ușor de citit de către oameni, cât și în mod consecvent înțeles
de computere și dispozitive, cum ar fi browsere web, parsere etc., fără rigiditatea XHTML; și să
rămână compatibil cu programele mai vechi. HTML5 este destinat să includă nu numai HTML 4,
ci și XHTML 1 și DOM Level 2 HTML.
Sunt incluse multe caracteristici sintactice noi. Pentru a include și gestiona în mod nativ
conținut multimedia și grafic, noi <video> , <audio> and <canvas> elemente au fostadăugate,
5
Cimpanu, Catalin (29 May 2019). "Browser vendors Win War with W3C over HTML and DOM standards".
ZDNet.
9
secțiunileextensibile sunt
fi <main> , <section> , <article> , <header> , <footer> , <aside> , <nav> , and <figure> au
fostadăugate.Au fostintrodusenoiatribute, uneleelementeșiatribute au fost eliminate, iaraltele
precum <a>, <cite>și<meniu> au fostmodificate, redefinitesaustandardizate. API-urile și
Document Object Model (DOM) sunt acumpărțifundamentale ale specificației HTML5, 6și
HTML5 definește, de asemenea, mai bine procesareaoricărordocumenteinvalide.
În timp ce unele caracteristici ale HTML5 sunt adesea comparate cu Adobe Flash, cele
două tehnologii sunt foarte diferite. Ambele includ funcții pentru redarea audio și video în
paginile web și pentru utilizarea graficelor vectoriale scalabile. Cu toate acestea, HTML5 în sine
6
Tkacz, Ewaryst; Kapczynski, Adrian (2009). Internet – Technical Development and Applications. Springer
Science+Business Media. p. 255. ISBN 9783642050190.
10
nu poate fi folosit pentru animație sau interactivitate – trebuie completat cu CSS3 sau JavaScript.
Există multe capabilități Flash care nu au o contraparte directă în HTML5.
Acest lucru a stârnit o dezbatere în cercurile de dezvoltare web, sugerând că, în timp ce
HTML5 oferă funcționalități îmbunătățite, dezvoltatorii trebuie să ia în considerare suportul
variat al browserului din diferitele părți ale standardului, precum și alte diferențe de
funcționalitate dintre HTML5 și Flash.La începutul lunii noiembrie 2011, Adobe a anunțat că va
întrerupe dezvoltarea Flash pentru dispozitive mobile și va reorienta eforturile de dezvoltare a
instrumentelor care utilizează HTML5.7La 25 iulie 2017, Adobe a anunțat că atât distribuția, cât
și suportul Flash vor înceta până la sfârșitul anului 2020. Adobe însuși a întrerupt oficial Flash pe
31 decembrie 2020 și tot conținutul Flash a fost blocat să ruleze în Flash Player începând cu 12
ianuarie 2021.
W3C a cedat autoritatea asupra standardelor HTML și DOM către WHATWG pe 28 mai
2019, deoarece a considerat că a avea două standarde este dăunătoare. Standardul de viață
HTML este acum autorizat. Cu toate acestea, W3C va participa în continuare la procesul de
dezvoltare a HTML.
7
Terzi, Nuray (2011). "The impact of e-commerce on international trade and employment". Procedia - Social and
Behavioral Sciences. 24: 745–753.
11
în timp ce „standardul de viață HTML” WHATWG este actualizat continuu. Relația fusese
descrisă ca fiind „fragilă”, chiar o „ruptură” și caracterizată prin „ceartă”.
În cel puțin un caz, și anume conținutul permis al elementului <cite>, cele două
specificații s-au contrazis direct reciproc (din iulie 2018), definiția W3C permițând o gamă mai
largă de utilizări decât definiția WHATWG.Secțiunea „Introducere” din specificația WHATWG
(editată de Ian „Hixie” Hickson) critică W3C, de ex. „Notă: deși le-am cerut să nu mai facă acest
lucru, W3C republică și unele părți ale acestei specificații ca documente separate.” În
subsecțiunea „Istoric”, acesta prezintă W3C ca fiind rezistent la planurile HTML 5 originale ale
lui Hickson și WHATWG, apoi urcându-se cu întârziere (deși Hickson controla și specificațiile
W3C HTML 5). Indiferent, indică o divizare filozofică majoră între organizații.
Timp de câțiva ani, ambele grupuri au lucrat apoi împreună. În 2011, totuși, grupurile au
ajuns la concluzia că au obiective diferite: W3C dorea să publice o versiune „terminată” a
„HTML5”, în timp ce WHATWG dorea să continue să lucreze la un Standard de viață pentru
HTML, menținând continuu specificația. mai degrabă decât să-l înghețe într-o stare cu probleme
cunoscute și să adauge noi funcții după cum este necesar pentru a evolua platforma.
De atunci, WHATWG a lucrat la această specificație (printre altele), iar W3C a copiat
corecțiile făcute de WHATWG în documentul lor (care are și alte modificări).Cele două entități
au semnat un acord pentru a lucra împreună la o singură versiune de HTML la 28 mai 2019.W3C
a propus o încredere mai mare pe modularitate ca parte cheie a planului pentru a face progrese
mai rapide, adică identificarea caracteristicilor specifice, fie propuse, fie deja existente în
specificații, și avansarea lor ca specificații separate. Unele tehnologii care au fost definite inițial
în HTML 5 sunt acum definite în specificații separate.
Grup de lucru pentru aplicații web – Mesaje web, lucrători web, stocare web, WebSocket,
evenimente trimise de server, componente web(aceasta nu făcea totuși parte din HTML 5);
Grupul de lucru pentru aplicații web a fost închis în octombrie 2015, iar rezultatele sale au fost
transferate Grupului de lucru pentru platforme web (WPWG).
12
Unele funcții care au fost eliminate din specificația originală HTML 5 au fost
standardizate separat ca module, cum ar fi Microdata și Canvas. Specificațiile tehnice introduse
ca extensii HTML 5, cum ar fi marcajul Polyglot, au fost, de asemenea, standardizate ca module.
Unele specificații W3C care erau inițial specificații separate au fost adaptate ca extensii sau
funcții HTML 5, cum ar fi SVG. Unele caracteristici care ar fi putut încetini standardizarea
HTML 5 au fost sau vor fi standardizate ca specificații viitoare.
Caracteristici
Markup
HTML 5 introduce elemente și atribute care reflectă utilizarea tipică pe site-urile web
moderne. Unele dintre ele sunt înlocuiri semantice pentru utilizările obișnuite ale elementelor
bloc generice (<div>) și inline (<span>), de exemplu <nav> (bloc de navigare pe site-ul web),
<footer> (de obicei referindu-se la partea de jos a paginii web sau la ultimele rânduri de cod
HTML) sau <audio> și <video> în loc de <obiect>. 8 Unele elemente depreciate din HTML 4.01
au fost renunțate, inclusiv elemente pur de prezentare, cum ar fi <font> și <center>, ale căror
efecte au fost de mult înlocuite de foile de stil în cascadă mai capabile. Există, de asemenea, un
accent reînnoit pe importanța JavaScript-ului la nivelul clientului utilizat pentru a crea pagini
web dinamice.
8
ICAMD.org Finalcut Silverlight Films that Videographers share Quicktime in a Flash: Video on the Web using
HTML5 and other Codecs
13
API-uri legate de HTML5
Offline;
Conținut editabil;[106]
Trageți și plasați;
Istorie;
Microdate;
Mesaje web;
Stocare web – un cadru de stocare pereche cheie-valoare care oferă un comportament similar cu
cookie-urile, dar cu o capacitate de stocare mai mare și un API îmbunătățit.
Nu toate tehnologiile de mai sus sunt incluse în specificația W3C HTML 5, deși sunt în
specificația HTML WHATWG. Unele tehnologii conexe, care nu fac parte nici din specificația
W3C HTML 5, nici din specificația WHATWG HTML, sunt următoarele. W3C publică
specificații pentru acestea separat:
Geolocalizare;
Web Audio – un API JavaScript de nivel înalt pentru procesarea și sintetizarea audio în aplicații
web;
ClassList.
WebRTC
Web SQL Database – o bază de date SQL locală (nu mai este întreținută);9
HTML 5 nu poate oferi animație în paginile web. JavaScript sau CSS3 suplimentare sunt
necesare pentru animarea elementelor HTML. Animația este, de asemenea, posibilă folosind
JavaScript și HTML 4 și în cadrul elementelor SVG prin SMIL, deși suportul browser-ului
pentru acesta din urmă rămâne neuniform din 2011.
Documentele XML trebuie să fie difuzate cu un tip media de Internet XML (numit adesea
„tip MIME”), cum ar fi application/xhtml+xml sau application/xml, și trebuie să respecte sintaxa
strictă și bine formată a XML. XHTML 5 este pur și simplu date HTML 5 serializate în XML
(adică HTML 5 limitat la X). Cerințele stricte ale HTML, de exemplu, fără etichete neînchise),
trimise cu unul dintre tipurile media XML. HTML care a fost scris pentru a se conforma atât cu
specificațiile HTML, cât și cu XHTML și, prin urmare, produce același arbore DOM, indiferent
dacă este analizat ca HTML sau XML, este cunoscut sub numele de markuppoliglot.Nu există
DTD pentru XHTML5.
9
Web SQL Database". World Wide Web Consortium.
15
Eroare de manipulare
HTML 5 este conceput astfel încât browserele vechi să poată ignora în siguranță noile
constructe HTML 5.Spre deosebire de HTML 4.01, specificația HTML 5 oferă reguli detaliate
pentru lexare și parsare, cu intenția ca browserele compatibile să producă aceleași rezultate
atunci când parsează sintaxa incorectă. Deși HTML 5 definește acum un comportament
consistent pentru documentele „sup de etichete”, acele documente nu sunt conforme cu
standardul HTML 5.10
CascadingStyleSheets (CSS) este un limbaj pentru foi de stil folosit pentru a descrie
prezentarea unui document scris într-un limbaj de marcare precum HTML. CSS este o tehnologie
de bază a World Wide Web, alături de HTML și JavaScript.CSS este conceput pentru a permite
separarea prezentării și a conținutului, inclusiv aspectul, culorile și fonturile. Această separare
poate îmbunătăți accesibilitatea conținutului; oferă mai multă flexibilitate și control în
specificarea caracteristicilor de prezentare; permiteți mai multe pagini web să partajeze
formatarea prin specificarea CSS-ului relevant într-un fișier .css separat, ceea ce reduce
complexitatea și repetarea conținutului structural; și permiteți ca fișierul .css să fie stocat în
cache pentru a îmbunătăți viteza de încărcare a paginii între paginile care partajează fișierul și
formatarea acestuia.
10
Percentage of Web sites Using HTML5". binvisions. 30 September 2011.
16
tipărire, prin voce (prin browser sau cititor de ecran bazat pe vorbire) și pe baza Braille.
dispozitive tactile. CSS are și reguli pentru formatare alternativă dacă conținutul este accesat pe
un dispozitiv mobil.11
Sintaxă
CSS are o sintaxă simplă și folosește un număr de cuvinte cheie în limba engleză pentru a
specifica numele diferitelor proprietăți de stil.O foaie de stil constă dintr-o listă de reguli. Fiecare
regulă sau set de reguli constă dintr-unul sau mai mulți selectori și un bloc de declarare.
Selector
În CSS, selectorii declară căreia parte a markupului se aplică un stil prin potrivirea
etichetelor și a atributelor din marcajul în sine.Selectorii se pot aplica la următoarele:
11
Web-based Mobile Apps of the Future Using HTML 5, CSS and JavaScript". HTMLGoodies. 23 July 2010
17
- clasă: un identificator care poate adnota mai multe elemente dintr-un document,
identificat cu un prefix punct de ex. .numele clasei
- elemente în funcție de modul în care sunt plasate în raport cu altele în arborele
documentului.
Clasele și ID-urile fac distincție între majuscule și minuscule, încep cu litere și pot
include caractere alfanumerice, cratime și caractere de subliniere. O clasă se poate aplica oricărui
număr de instanțe ale oricărui element. Un ID poate fi aplicat doar unui singur element.
arfi :link sau :visited ,întimpce un pseudo-element face o selecție care poateconsta din elementeparțiale,
Bloc de declarație
18
Un bloc de declarațiiconstădintr-o listă de declarațiiîntreacolade. Fiecaredeclarațieîn sine
constădintr-o proprietate, douăpuncte (:) și o valoare. Dacăîntr-un bloc existămaimultedeclarații,
trebuieintrodus un punctșivirgulă (;) pentru a separafiecaredeclarație. Se poatefolosi un
punctșivirgulăopționaldupă ultima (sausingură) declarație.12
Unități de lungime
12
W3C CSS2.1 specification for rule sets, declaration blocks, and selectors". World Wide Web Consortium. 7 June
2011
19
Utilizare
De exemplu, titlurile (elementele h1), subtitlurile (h2), sub-subtitturile (h3), etc., sunt
definite structural folosind HTML. Înimprimareși pe ecran, alegereafontului, mărimea,
culoareașiaccentulpentruacesteelementeeste de prezentare.Înainte de CSS, autorii de documente
care doreausăatribuieastfel de caracteristicitipografice, de exemplu, tuturortitlurilor h2
trebuiausărepetemarcajul de prezentare HTML pentrufiecareaparițieaacelui tip de titlu.
Acestlucru a făcutdocumentelemaicomplexe, maimarișimaipredispuse la erorișimaidificil de
întreținut. CSS permiteseparareaprezentării de structură.
Surse
Informațiile CSS pot fi furnizate din diverse surse. Acestesurse pot fi browserul web,
utilizatorulșiautorul. Informațiile de la autor pot fi clasificateîncontinuareîn inline, tip media,
importanță, specificitateaselectorului, ordinearegulilor, moștenireașidefinițiaproprietății.
Informațiile de stil CSS pot fi într-un document separatsau pot fi încorporateîntr-un document
HTML. Pot fi importatemaimultefoi de stil. Pot fi aplicatediferitestiluriînfuncție de dispozitivul
de ieșireutilizat; de exemplu, versiunea pe ecranpoate fi destul de diferită de versiuneatipărită,
astfelîncâtautorii pot adaptaprezentareaîn mod corespunzătorpentrufiecaremediu.
13
W3C HTML Working Group. "HTML 5. A vocabulary and associated APIs for HTML and XHTML". World
Wide Web Consortium.
20
Foaia de stil cu ceamai mare prioritatecontroleazăafișareaconținutului. Declarațiile care
nu sunt setateînsursa cu ceamai mare prioritate sunt transmiseuneisurse cu prioritateinferioară,
cum ar fi stilul de agent utilizator. Procesul se numeștecascadă.Unuldintreobiectivele CSS este
de a permiteutilizatorilor un control mai mare asupraprezentării. Cineva care
considerăcătitlurileitaliceroșii sunt greu de cititpoateaplica o altăfoaie de stil. Înfuncție de
browser și de site-ul web, un utilizatorpoatealegedintrediferitefoi de stilfurnizate de
designerisaupoateeliminatoatestilurileadăugateșipoatevizualiza site-ul folosindstilul implicit al
browseruluisaupoatesuprascriedoarstilul de titluroșu italic fără a modificaalteatribute.
Moştenire
14
Meyer, Eric A. (2006). Cascading Style Sheets: The Definitive Guide (3rd ed.). O'Reilly Media, Inc. ISBN 0-596-
52733-0.
21
modificări”. Cu toateacestea, nu esteposibilsă se definească o clasă B CSS astfel, care arputea fi
apoiutilizatăpentru a stilamaimulteelementefără a fi nevoiesărepețimodificările.
CAPITOLUL III
JavaScript adesea abreviat JS, este un limbaj de programare care este una dintre
tehnologiile de bază ale World Wide Web, alături de HTML și CSS. Peste 97% dintre site-uri
22
web folosesc JavaScript pe partea client pentru comportamentul paginii web, încorporând adesea
biblioteci terțe. Toate browserele web majore au un motor JavaScript dedicat pentru a executa
codul pe dispozitivele utilizatorilor.
JavaScript este un limbaj de nivel înalt, adesea compilat just-in-time, care se conformează
standardului ECMAScript. Are tastare dinamică, orientare pe obiecte bazată pe prototip și funcții
de primă clasă. Este multi-paradigmă, care acceptă stiluri de programare bazate pe evenimente,
funcționale și imperative. Are interfețe de programare a aplicațiilor (API) pentru lucrul cu text,
date, expresii regulate, structuri de date standard și Modelul obiectului documentului (DOM).15
Începând cu 2018, Node fusese folosit de milioane de dezvoltatori, iar npm avea cele
mai multe module dintre orice manager de pachete din lume. Specificația schiță ECMAScript
este în prezent menținută în mod deschis pe GitHub, iar edițiile sunt produse prin intermediul
unor instantanee anuale regulate. Revizuirile potențiale ale limbii sunt verificate printr-un proces
cuprinzător de propunere. Acum, în loc de numerele ediției, dezvoltatorii verifică individual
starea funcțiilor viitoare.
23
JavaScript este limbajul de scriptare dominant pe partea client al Web-ului, cu 97% dintre
site-uri web care îl folosesc în acest scop. Scripturile sunt încorporate sau incluse din
documentele HTML și interacționează cu DOM. Toate browserele web majore au un motor
JavaScript încorporat care execută codul pe dispozitivul utilizatorului.
- încărcarea unui nou conținut de pagină web fără a reîncărca pagina, prin Ajax sau un
WebSocket. De exemplu, utilizatorii rețelelor sociale pot trimite și primi mesaje fără a
părăsi pagina curentă;
- animații ale paginilor web, cum ar fi decolorarea obiectelor înăuntru și în afara,
redimensionarea și mutarea acestora;
- jucând jocuri de browser;
- controlul redării conținutului media în flux;
- generarea de reclame pop-up;
- validarea valorilor de intrare ale unui formular web înainte ca datele să fie trimise către
un server web;
- înregistrarea datelor despre comportamentul utilizatorului, apoi trimiterea acestora către
un server. Proprietarul site-ului web poate folosi aceste date pentru analiză, urmărire a
reclamelor și personalizare;
- redirecționarea unui utilizator către o altă pagină.
Utilizarea JavaScript s-a extins dincolo de rădăcinile browserului său web. Motoarele
JavaScript sunt acum încorporate într-o varietate de alte sisteme software, atât pentru
implementări de site-uri web pe partea de server, cât și pentru aplicații non-browser. Încercările
inițiale de a promova utilizarea JavaScript pe partea de server au fost Netscape Enterprise Server
și Internet Information Services de la Microsoft,16 dar erau nișe mici. Utilizarea pe partea
serverului a început în cele din urmă să crească la sfârșitul anilor 2000, odată cu crearea Node.js
și a altor abordări.
Electron, Cordova, React Native și alte cadre de aplicație au fost folosite pentru a crea
multe aplicații cu comportament implementat în JavaScript. Alte aplicații non-browser includ
16
Clinick, Andrew (July 14, 2000). "Introducing JScript .NET". Microsoft Developer Network. Microsoft. Archived
from the original on November 10, 2017. Retrieved April 10, 2018
24
suport Adobe Acrobat pentru scriptarea documentelor PDF și extensiile GNOME Shell scrise în
JavaScript.
Imperativ și structurat
JavaScript acceptă o mare parte din sintaxa de programare structurată din C (de exemplu,
instrucțiuni if, bucle while, instrucțiuni switch, bucle do while etc.). O excepție parțială este
domeniul de aplicare: inițial JavaScript avea doar domeniul de aplicare al funcției cu var; apoi
blocarea domeniului a fost adăugată în ECMAScript 2015 cu cuvintele cheie let și const. La fel
ca C, JavaScript face o distincție între expresii și declarații. O diferență sintactică față de C este
inserarea automată a punctului și virgulă, care permite omiterea punctului și virgulă (care
termină declarațiile).
Scris slab
JavaScript este scris slab, ceea ce înseamnă că anumite tipuri sunt implicit turnate în
funcție de operația utilizată. Operatorul binar + transformă ambii operanzi într-un șir, cu excepția
cazului în care ambii operanzi sunt numere. Acest lucru se datorează faptului că operatorul de
adăugare se dublează ca operator de concatenare
JavaScript a primit critici pentru modul în care implementează aceste conversii, deoarece
complexitatea regulilor poate fi confundată cu inconsecvență. De exemplu, când se adaugă un
număr la un șir, numărul va fi turnat într-un șir înainte de a efectua concatenarea, dar când se
scădea un număr dintr-un șir, șirul este turnat la un număr înainte de a efectua scăderea.
Deseori menționat este și {} + [] rezultând 0 (număr). Acest lucru este înșelător: {} este
interpretat ca un bloc de cod gol în loc de un obiect gol, iar matricea goală este transformată într-
un număr de operatorul unar + rămas. Dacă înfășurați expresia în paranteze ({} + []), parantezele
sunt interpretate ca un obiect gol și rezultatul expresiei este „[object Object]” așa cum era de
așteptat.17
Tastare
JavaScript este tastat dinamic ca majoritatea altor limbaje de scripting. Un tip este asociat
cu o valoare mai degrabă decât cu o expresie. De exemplu, o variabilă legată inițial de un număr
poate fi reatribuită unui șir. JavaScript acceptă diferite moduri de a testa tipul de obiecte, inclusiv
tastarea tip rață.
26
Funcțiile se dublează ca constructori de obiecte, împreună cu rolul lor tipic. Prefixarea
unui apel de funcție cu new va crea o instanță a unui prototip, moștenind proprietăți și metode de
la constructor (inclusiv proprietăți din prototipul Object). ECMAScript 5 oferă metoda
Object.create, permițând crearea explicită a unei instanțe fără a moșteni automat de la prototipul
Object (mediile mai vechi pot atribui prototipul la null).
Spre deosebire de multe limbaje orientate pe obiecte, nu există nicio distincție între
definiția unei funcții și definiția unei metode. Mai degrabă, distincția are loc în timpul apelării
funcției; atunci când o funcție este apelată ca metodă a unui obiect, cuvântul cheie local al
funcției este legat de acel obiect pentru acea invocare.
O funcție este de primă clasă; o funcție este considerată a fi un obiect. Ca atare, o funcție
poate avea proprietăți și metode, cum ar fi .call() și .bind(). 18 O funcție imbricată este o funcție
definită în cadrul unei alte funcții. Este creat de fiecare dată când funcția exterioară este invocată.
În plus, fiecare funcție imbricată formează o închidere lexicală: domeniul lexical al funcției
exterioare (inclusiv orice constantă, variabilă locală sau valoare de argument) devine parte din
starea internă a fiecărui obiect funcție interioară, chiar și după încheierea execuției funcției
externe. .JavaScript acceptă și funcții anonime.
27
În timp ce delegarea explicită bazată pe funcții acoperă compoziția în JavaScript,
delegarea implicită are loc deja de fiecare dată când lanțul de prototip este parcurs, de exemplu,
pentru a găsi o metodă care ar putea fi legată de un obiect, dar care nu este deținută direct de
acesta. Odată ce metoda este găsită, este apelată în contextul acestui obiect. Astfel, moștenirea în
JavaScript este acoperită de un automatism de delegare care este legat de proprietatea
prototipului funcțiilor de constructor.
Când stiva de apeluri este goală la finalizarea funcției, JavaScript trece la următorul
mesaj din coadă. Aceasta se numește bucla de evenimente, descrisă ca „rulare până la finalizare”,
deoarece fiecare mesaj este procesat complet înainte ca următorul mesaj să fie luat în
considerare. Cu toate acestea, modelul de concurență al limbajului descrie bucla de evenimente
ca neblocantă: intrarea/ieșirea programului este efectuată folosind evenimente și funcții de apel
invers. Aceasta înseamnă, de exemplu, că JavaScript poate procesa un clic de mouse în timp ce
așteaptă ca o interogare a bazei de date să returneze informații.19
Un număr nedefinit de parametri poate fi transmis unei funcții. Funcția le poate accesa
prin parametri formali și, de asemenea, prin obiectul argumente locale. Funcțiile variadice pot fi
create și folosind metoda bind. La fel ca multe limbaje de scripting, tablourile și obiectele
(matricele asociative în alte limbi) pot fi create fiecare cu o sintaxă de scurtătură succintă. De
fapt, acești literali formează baza formatului de date JSON. JavaScript acceptă, de asemenea,
19
Concurrency model and Event Loop". Mozilla Developer Network. Archived from the original on September 5,
2015
28
expresii regulate într-o manieră similară cu Perl, care oferă o sintaxă concisă și puternică pentru
manipularea textului, care este mai sofisticată decât funcțiile de șir încorporate.
Din punct de vedere istoric, unele motoare JavaScript au acceptat aceste funcții non-
standard:
29
jQuery este folosit de 73% dintre cele mai populare 10 milioane de site-uri web. Analiza web
indică faptul că este cea mai răspândită bibliotecă JavaScript cu o marjă mare, având de cel puțin
3 până la 4 ori mai multă utilizare decât orice altă bibliotecă JavaScript.
Sintaxa jQuery este concepută pentru a facilita navigarea într-un document, selectarea
elementelor DOM, crearea de animații, gestionarea evenimentelor și dezvoltarea aplicațiilor
Ajax. jQuery oferă, de asemenea, capabilități pentru dezvoltatori de a crea pluginuri pe partea
superioară a bibliotecii JavaScript. Acest lucru le permite dezvoltatorilor să creeze abstracții
pentru interacțiune și animație la nivel scăzut, efecte avansate și widget-uri la nivel înalt cu
tematică. Abordarea modulară a bibliotecii jQuery permite crearea de pagini web dinamice și de
aplicații web puternice.20
Microsoft și Nokia oferă jQuery pe platformele lor. Microsoft îl include cu Visual Studio
pentru a fi utilizat în cadrele Microsoft ASP.NET AJAX și ASP.NET MVC, în timp ce Nokia l-a
integrat în platforma de dezvoltare a widget-urilor Web Run-Time. jQuery, în esență, este o
bibliotecă de manipulare Document Object Model (DOM). DOM-ul este o reprezentare cu
structură arborescentă a tuturor elementelor unei pagini Web. jQuery simplifică sintaxa pentru
găsirea, selectarea și manipularea acestor elemente DOM.
20
jQuery 3.5.0 Released!". jQuery Blog. April 10, 2020.
30
de apel invers se fac într-un singur pas într-o singură locație din cod. jQuery urmărește, de
asemenea, să încorporeze alte funcționalități JavaScript foarte utilizate (de exemplu, fade ins și
fade outs atunci când ascunde elemente, animații prin manipularea proprietăților CSS).
jQuery a fost creat inițial în ianuarie 2006 la BarCamp NYC de John Resig, influențat de
biblioteca anterioară cssQuery a lui Dean Edwards. În prezent este întreținut de o echipă de
dezvoltatori condusă de Timmy Willison (cu motorul de selecție jQuery, Sizzle, fiind condusă de
Richard Gibson).
jQuery a fost inițial licențiat sub CC BY-SA 2.5 și relicențiat cu licența MIT în 2006. La
sfârșitul anului 2006, a fost dublă licență sub licențe GPL și MIT. Deoarece acest lucru a dus la o
oarecare confuzie, în 2012, GPL-ul a fost renunțat și acum este licențiat numai sub licența MIT.
31
- evenimente;
- efecte și animații;
- ajax;
- obiecte amânate și Promise pentru a controla procesarea asincronă;
- analiza JSON;
- extensibilitate prin plug-in-uri;
- utilități, cum ar fi detectarea caracteristicilor;
- metode de compatibilitate care sunt disponibile nativ în browserele moderne, dar au
nevoie de alternative pentru browserele mai vechi, cum ar fi jQuery.inArray() și
jQuery.each();
- asistență între browsere;
jQuery 3.0 și versiunile mai noi acceptă „versiunile actuale-1” (adică versiunea stabilă
actuală a browserului și versiunea care l-a precedat) de Firefox (și ESR), Chrome, Safari și Edge,
precum și Internet Explorer 9 și mai noi. Pe mobil acceptă iOS 7 și versiunile ulterioare și
Android 4.0 și versiunile ulterioare.
Biblioteca jQuery este distribuită de obicei ca un singur fișier JavaScript care definește
toate interfețele sale, inclusiv funcțiile DOM, Evenimente și Ajax. Poate fi inclus într-o pagină
Web prin link-ul către o copie locală sau prin link-ul către una dintre numeroasele copii
disponibile de pe serverele publice. jQuery are o rețea de livrare de conținut (CDN) găzduită de
MaxCDN. Google în serviciul Google Hosted Libraries și Microsoft găzduiesc și biblioteca.21
Exemplu de conectare local a unei copii a bibliotecii (de pe același server care găzduiește
pagina Web):
<script src="jquery-3.5.1.min.js"></script>
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
21
Microsoft Ajax Content Delivery Network". ASP.net. Microsoft Corporation. Retrieved April 15, 2019
32
integritate="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
jQuery oferă două tipuri de funcții, funcții utilitare statice și metode obiect jQuery.
Fiecare are propriul stil de utilizare. Ambele sunt accesate prin identificatorul principal al
jQuery: jQuery. Acest identificator are un alias numit $.Toate funcțiile pot fi accesate prin
oricare dintre aceste două nume.
Funcția jQuery este o fabrică pentru crearea unui obiect jQuery care reprezintă unul sau
mai multe noduri DOM. Obiectele jQuery au metode de manipulare a acestor noduri. Aceste
metode (uneori numite comenzi) pot fi înlănțuite, deoarece fiecare metodă returnează și un obiect
jQuery.
Accesul și manipularea mai multor noduri DOM în jQuery începe de obicei cu apelarea funcției
$ cu un șir de selecție CSS. Aceasta returnează un obiect jQuery care face referire la toate
elementele care se potrivesc din pagina HTML. $("div.test"), de exemplu, returnează un obiect
jQuery cu toate elementele div ale testului clasei. Acest set de noduri poate fi manipulat prin
apelarea unor metode pe obiectul jQuery returnat.
33
CAPITOLUL IV
PHP este un limbaj de scripting de uz general orientat spre dezvoltarea web. A fost creat
inițial de programatorul danez-canadian Rasmus Lerdorf în 1994. Implementarea de referință
PHP este acum produsă de The PHP Group. PHP a reprezentat inițial Pagina de pornire
personală[8], dar acum reprezintă inițialismul recursiv PHP: Hypertext Preprocessor.
Codul PHP este de obicei procesat pe un server web de un interpret PHP implementat ca
modul, daemon sau ca executabil CGI (Common Gateway Interface). Pe un server web,
rezultatul codului PHP interpretat și executat – care poate fi orice tip de date, cum ar fi datele
HTML generate sau imagini binare – ar forma întregul răspuns sau o parte a unui răspuns HTTP.
Există diverse sisteme de șabloane web, sisteme de gestionare a conținutului web și cadre web
34
care pot fi folosite pentru a orchestra sau facilita generarea acelui răspuns. În plus, PHP poate fi
folosit pentru multe sarcini de programare în afara contextului web, cum ar fi aplicații grafice de
sine stătătoare și controlul dronei robotizate. Codul PHP poate fi executat direct din linia de
comandă.22
Interpretul standard PHP, alimentat de Zend Engine, este un software gratuit lansat sub
Licența PHP. PHP a fost portat pe scară largă și poate fi implementat pe majoritatea serverelor
web pe o varietate de sisteme de operare și platforme. Limbajul PHP a evoluat fără o specificație
formală sau un standard scris până în 2014, implementarea originală acționând ca standard de
facto pe care și-au propus alte implementări. Din 2014, au continuat lucrările pentru a crea o
specificație PHP formală.
W3Techs raportează că, din ianuarie 2022, „PHP este folosit de 78,1% din toate site-urile
web al căror limbaj de programare pe server îl cunoaștem.” PHP versiunea 7.4 este cea mai
utilizată versiune. Suportul pentru versiunea 7.3 a fost renunțat la 6 decembrie 2021. PHP 8 a
fost lansat pe 26 noiembrie 2020. PHP 8 este o versiune majoră și are modificări radicale față de
versiunile anterioare. Noile funcții și modificări notabile includ compilare la timp și compilarea
just-in-time este acceptată în PHP 8.
22
Introduction: What can PHP do?". PHP Manual. 2019-03-05.
23
Popov, Nikita. ""What's new in PHP 8.0?" Nikita Popov". PHP fwdays. 2021-12-11
35
PHP 8 include modificări pentru a permite sintaxe alternative, mai concise sau mai
consistente într-un număr de scenarii. De exemplu, operatorul nullsafe este similar cu operatorul
de coalescere nul ??, dar este folosit la apelarea metodelor.Următorul fragment de cod nu va
genera o eroare dacă getBirthday() returnează null:
$human_redable_date = $user->getBirthday()?->diffForHumans();
Hărți slabe au fost adăugate în PHP 8. Un WeakMap conține referințe la obiecte, dar
aceste referințe nu împiedică astfel de obiecte să fie colectate de gunoi. Acest lucru poate oferi
îmbunătățiri de performanță în scenariile în care datele sunt stocate în cache; acest lucru este
deosebit de relevant pentru ORM.
Suportul pentru enumerări a fost una dintre cele mai proeminente caracteristici ale PHP
8.1. Enumerările permit dezvoltatorilor să impună în mod programatic stări în baza lor de cod.
Mai jos este un exemplu de enumerare:
<?php
namespace App\Enums;
36
case paid = ‘plătit’;
PHP este scris vag. Stochează numere întregi într-un interval dependent de platformă, fie
ca un întreg semnat pe 32, 64 sau 128 de biți, echivalent cu tipul lung de limbaj C. Numerele
întregi fără semn sunt convertite în valori semnate în anumite situații, ceea ce este un
comportament diferit față de multe alte limbaje de programare. 24
Variabilele întregi pot fi
atribuite folosind notații zecimale (pozitive și negative), octale, hexazecimale și binare.
Tipul de date nul reprezintă o variabilă care nu are valoare; NULL este singura valoare
permisă pentru acest tip de date. Variabilele de tip „resurse” reprezintă referiri la resurse din
surse externe. Acestea sunt de obicei create de funcții dintr-o anumită extensie și pot fi procesate
numai de funcții din aceeași extensie; exemplele includ fișiere, imagini și resurse de bază de
date.
Matricele pot conține elemente de orice tip pe care PHP le poate gestiona, inclusiv
resurse, obiecte și chiar alte matrice. Ordinea este păstrată în liste de valori și în hash-uri atât cu
chei, cât și cu valori, iar cele două pot fi amestecate. PHP acceptă și șiruri de caractere, care pot
fi folosite cu ghilimele simple, ghilimele duble, sintaxa nowdoc sau heredoc.
24
"Integers in PHP, running with scissors, and portability". MySQL Performance Blog. March 27, 2007
37
sarcinile creative pentru programatori care folosesc limbajul. Gestionarea obiectelor a fost
complet rescrisă pentru PHP 5, extinzând setul de caracteristici și îmbunătățind performanța.
Dacă dezvoltatorul creează o copie a unui obiect folosind clona cuvântului rezervat,
motorul Zend va verifica dacă a fost definită o metodă __clone(). Dacă nu, va apela un __clone()
implicit care va copia proprietățile obiectului. Dacă este definită o metodă __clone(), atunci
aceasta va fi responsabilă pentru setarea proprietăților necesare în obiectul creat. Pentru
comoditate, motorul va furniza o funcție care importă proprietățile obiectului sursă, astfel încât
programatorul poate începe cu o replică după valoarea obiectului sursă și poate suprascrie numai
proprietățile care trebuie modificate.
Vizibilitatea proprietăților și metodelor PHP este definită folosind cuvintele cheie public,
private și protected. Valoarea implicită este publică, dacă este folosit doar var; var este un
sinonim pentru public. Articolele declarate publice pot fi accesate oriunde. protejat limitează
accesul la clasele moștenite (și la clasa care definește elementul). private limitează vizibilitatea
numai la clasa care definește articolul. Obiectele de același tip au acces unul la membrii privați și
protejați ai celuilalt, chiar dacă nu sunt aceeași instanță.
38
4.2. Elemente ale limbajului BD MYSQL
MySQL are clienți autonomi care permit utilizatorilor să interacționeze direct cu o bază
de date MySQL folosind SQL, dar mai des, MySQL este folosit cu alte programe pentru a
implementa aplicații care au nevoie de capacitatea de baze de date relaționale. MySQL este o
componentă a stivei de aplicații web LAMP (și altele), care este un acronim pentru Linux,
Apache, MySQL, Perl/PHP/Python. MySQL este folosit de multe aplicații web bazate pe baze de
date, inclusiv Drupal, Joomla, phpBB și WordPress. MySQL este, de asemenea, utilizat de multe
site-uri web populare, inclusiv Facebook, Flickr, MediaWiki, Twitter și YouTube.
25
Sun Microsystems Announces Completion of MySQL Acquisition; Paves Way for Secure, Open Source Platform to
Power the Network Economy" (Press release). Sun Microsystems. 26 February 2008
39
MySQL este scris în C și C++. Analizorul său SQL este scris în yacc, dar folosește un
analizor lexical produs acasă. MySQL funcționează pe multe platforme de sistem, inclusiv AIX,
BSDi, FreeBSD, HP-UX, ArcaOS, eComStation, IBM i, IRIX, Linux, macOS, Microsoft
Windows, NetBSD, Novell NetWare, OpenBSD, OpenSolaris, OS/2 Warp, QNX, Oracle Solaris,
Symbian, SunOS, SCO OpenServer, SCO UnixWare, Sanos și Tru64. Există, de asemenea, un
port MySQL către OpenVMS.
MySQL este oferit în două ediții diferite: MySQL Community Server cu sursă deschisă și
Enterprise Server proprietar. MySQL Enterprise Server se diferențiază printr-o serie de extensii
proprietare care se instalează ca pluginuri de server, dar, altfel, partajează sistemul de numerotare
a versiunilor și este construită din aceeași bază de cod.
40
- schemă de performanță care colectează și agregează statistici despre execuția serverului
și performanța interogărilor în scopuri de monitorizare;
- un set de opțiuni pentru modul SQL pentru a controla comportamentul de rulare, inclusiv
un mod strict pentru a respecta mai bine standardele SQL;
- X/Open XA suport pentru procesarea tranzacțiilor distribuite (DTP); comitere în două
faze ca parte a acestui lucru, folosind motorul de stocare implicit InnoDB;
- tranzacții cu puncte de salvare când se utilizează motorul implicit de stocare InnoDB.
Motorul de stocare a clusterului NDB acceptă și tranzacții;
- conformitatea ACID atunci când se utilizează motoarele de stocare a clusterelor InnoDB
și NDB;
- suport SSL;
- interogarea în cache;
- sub-SELECT-uri (adică SELECT-uri imbricate);
- suport de replicare încorporat;
- replicare asincronă: master-slave de la un master la mai mulți sclavi sau mai mulți master
la un slave;
- replicare semi-sincronă: replicare de la master la slave unde masterul așteaptă replicarea;
- replicare sincronă: replicarea multi-master este furnizată în MySQL Cluster;
- virtual Synchronous: grupurile de servere MySQL autogestionate cu suport multi master
pot fi realizate folosind: Galera Cluster sau pluginul de replicare grup încorpora;
- indexarea și căutarea textului integral;
- bibliotecă de baze de date încorporată.
Când se utilizează unele motoare de stocare, altele decât cele implicite ale InnoDB,
MySQL nu respectă standardul SQL complet pentru unele dintre funcționalitățile implementate,
inclusiv referințele la chei străine. Constrângerile de verificare sunt analizate, dar ignorate de
toate motoarele de stocare înainte de versiunea MySQL 8.0.15.26
Până la MySQL 5.7, declanșatoarele sunt limitate la unul pentru acțiune/timing, ceea ce
înseamnă că cel mult un declanșator poate fi definit pentru a fi executat după o operație INSERT
și unul înainte de INSERT pe aceeași tabelă. Nu pot fi definite declanșatoare pentru vizualizări.
26
Wildeboer, Jan (5 January 2010). "Why I will not sign the MySQL petition". jan.wildeboer.net.
41
Funcțiile încorporate ale bazei de date MySQL, cum ar fi UNIX_TIMESTAMP() vor returna 0
după 03:14:07 UTC pe 19 ianuarie 2038.
MySQL poate fi construit și instalat manual din codul sursă, dar este mai frecvent instalat
dintr-un pachet binar, cu excepția cazului în care sunt necesare personalizări speciale. Pe
majoritatea distribuțiilor Linux, sistemul de gestionare a pachetelor poate descărca și instala
MySQL cu un efort minim, deși este adesea necesară o configurare suplimentară pentru a ajusta
setările de securitate și optimizare.
Există, totuși, limite ale cât de mult se poate scala performanța pe un singur server
(„scalare”), astfel încât la scară mai mare, sunt necesare implementări MySQL pe mai multe
servere („scaling out”) pentru a oferi performanță și fiabilitate îmbunătățite. O configurație tipică
high-end poate include o bază de date master puternică care se ocupă de operațiunile de scriere a
datelor și este replicată la mai mulți sclavi care se ocupă de toate operațiunile de citire.
Serverul master împinge continuu evenimente binlog către slavii conectați, astfel încât, în
caz de defecțiune, un slave poate fi promovat pentru a deveni noul master, minimizând timpul de
nefuncționare. Îmbunătățiri suplimentare în performanța poate fi obținută prin stocarea în cache a
rezultatelor interogărilor bazei de date în memorie folosind memcached sau prin descompunerea
unei baze de date în bucăți mai mici numite fragmente care pot fi răspândite într-un număr de
clustere de servere distribuite.
42
instrumente open source. MySQL poate fi rulat și pe platforme de cloud computing, cum ar fi
Microsoft Azure, Amazon EC2, Oracle Cloud Infrastructure.
CAPITOLUL V
43
CAPITOLUL VI
44
CONCLUZII
45
BIBLIOGRAFIE
46