AJAX
Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den
version , der blev gennemgået den 6. juli 2021; checks kræver
20 redigeringer .
Ajax |
---|
|
Sprog klasse |
Webapplikation , HTML , JavaScript , DHTML , Document Object Model , XMLHttpRequest , JSON , XML , XSLT , XHTML , Cascading Style Sheets |
Dukkede op i |
2005 |
Forfatter |
James Garrett |
Mediefiler på Wikimedia Commons |
AJAX , Ajax ( ˈeɪdʒæks , fra engelsk Asynchronous Javascript og XML - "asynchronous JavaScript and XML ") er en tilgang til at bygge interaktive brugergrænseflader til webapplikationer , som består i "baggrunds" -udvekslingen af data mellem browseren og webserveren . Som et resultat, når data opdateres, genindlæses websiden ikke fuldstændigt, og webapplikationer bliver hurtigere og mere bekvemme. På russisk udtales det nogle gange i translitteration som "Ajax". Forkortelsen AJAX har ikke en veletableret analog på kyrillisk.
Historie
Begrebet AJAX blev først brugt offentligt den 18. februar 2005 af Jesse James Garrett i hans artikel "A New Approach to Web Applications" [1] - sådan kaldte han det nye sæt af teknologier, som han tilbød kunden .
Men i en eller anden form har mange teknologier været tilgængelige og brugt meget tidligere, såsom i "Remote Scripting"-tilgangen foreslået af Microsoft i 1998 , eller ved at bruge HTML IFRAME-elementet, som dukkede op i Internet Explorer 3 i 1996 .
AJAX blev især populær, efter at den blev brugt af Google i Gmail , Google Maps og Google Suggest- tjenester. .
Teknologi
AJAX er ikke en selvstændig teknologi, men konceptet med at bruge flere relaterede teknologier. AJAX er baseret på to hovedprincipper:
- ved hjælp af teknologien med dynamisk adgang til serveren "on the fly", uden fuldstændig at genindlæse hele siden, for eksempel ved hjælp af XMLHttpRequest (hovedobjektet);
- gennem dynamisk skabelse af underordnede rammer [2] ;
- gennem dynamisk oprettelse af <script>-tagget [3] ;
- gennem den dynamiske oprettelse af <img>-tagget, som implementeret i Google Analytics.
- bruge DHTML til dynamisk at ændre sideindhold;
Interfacehandlinger konverteres til operationer med DOM ( Document Object Model )-elementer , ved hjælp af hvilke de data, der er tilgængelige for brugeren, behandles, hvilket resulterer i, at deres præsentation ændres. Den behandler også musebevægelser og klik samt tastetryk. Cascading Style Sheets , eller CSS ( Cascading Style Sheets ), giver et ensartet udseende og følelse til applikationselementer og gør DOM-objekter nemmere at få adgang til. XMLHttpRequest-objektet (eller lignende mekanismer) bruges til at kommunikere asynkront med serveren, behandle brugeranmodninger og indlæse de nødvendige data, mens de kører.
Tre af disse fire teknologier - CSS, DOM og JavaScript - udgør DHTML ( Dynamisk HTML ) . Ifølge nogle forfattere [4] viste DHTML-værktøjerne, der dukkede op i 1997, meget lovende, men levede ikke op til dem.
Dataoverførselsformatet kan være almindelige tekstfragmenter, HTML -kode, JSON eller XML .
Sammenligning af standardtilgangen og AJAX
I den klassiske webapplikationsmodel:
- Brugeren går ind på en webside og klikker på nogle af dens elementer;
- Browseren danner og sender en anmodning til serveren ;
- Som svar genererer serveren en helt ny webside og sender den til browseren osv., hvorefter browseren genindlæser hele siden fuldstændigt.
Når du bruger AJAX:
- Brugeren går ind på en webside og klikker på nogle af dens elementer;
- Scriptet (i JavaScript ) bestemmer, hvilke oplysninger der er nødvendige for at opdatere siden;
- Browseren sender en passende anmodning til serveren ;
- Serveren returnerer kun den del af dokumentet, som anmodningen kom for;
- Scriptet foretager ændringer baseret på de modtagne oplysninger (uden genindlæsning af en hel side).
Fordele
Sparer trafik, reducerer belastningen på serveren
Når den er korrekt implementeret, giver AJAX dig mulighed for at reducere belastningen på serveren flere gange. Især er alle sider på webstedet oftest genereret i henhold til en skabelon, inklusive uændrede elementer ("header", "navigationslinje", "footer" osv.), hvis generering kræver adgang til forskellige filer, tidspunktet at behandle scripts (og nogle gange forespørgsler til databasen) - alt dette kan udelades, hvis vi erstatter den fulde sideindlæsning med generering og transmission af kun indholdet.
Hurtigere UI-respons
Da indlæsningen af den ændrede del er meget hurtigere, ser brugeren resultatet af sine handlinger hurtigere og uden sideflimmer (opstår under en fuld genindlæsning).
Muligheder for interaktiv behandling
For eksempel, når du indtaster en søgeforespørgsel i
Google, vises et værktøjstip med mulige forespørgselsmuligheder. På mange websteder, når brugeren registrerer sig, indtaster brugeren et navn og ser straks, om dette navn er tilgængeligt eller ej. AJAX er nyttig til programmering af
chats , admin paneler og andre værktøjer, der viser data, der ændrer sig over tid.
Medierne stopper ikke
Siden genindlæses ikke, afspilleren fortsætter med at arbejde. Dette er grunden til, at AJAX er værdifuld i lyd- og videohosting. Så
YouTube for 2021 giver dig mulighed for at afspille videoer i
billed-i-billede- tilstand .
Ulemper
Manglende integration med standard browserværktøjer
URL'en ændres ikke, derfor virker tilbage-knappen ikke, det er umuligt at gemme bogmærket. Problemet kan med succes løses med History.pushState
[5] .
Dynamisk indlæst indhold er ikke tilgængeligt for søgemaskiner (hvis du ikke tjekker, om anmodningen er almindelig eller
XMLHttpRequest )
Søgemaskiner kan ikke udføre
JavaScript , så udviklere skal sørge for alternative måder at få adgang til webstedsindhold på.
[ angiv ] .
Gamle metoder til regnskabsføring af webstedsstatistikker bliver irrelevante
Mange statistiktjenester holder styr på visninger af nye sider på siden. For websteder, hvis sider bruger AJAX i udstrakt grad, er denne statistik ikke længere relevant.
Projektets kompleksitet
Logikken i databehandling er omfordelt - der er en udvælgelse og delvis overførsel til klientsiden af processerne for primær dataformatering. Dette komplicerer kontrollen af integriteten af formater og typer. Sluteffekten af teknologien kan blive opvejet af en urimelig stigning i omkostningerne til kodning og projektledelse samt risikoen for at reducere tilgængeligheden af tjenesten for slutbrugere.
Kræver JavaScript aktiveret i browseren
Det kan være deaktiveret af sikkerhedsmæssige årsager. Derudover er AJAX-sider svære at få adgang til for ikke-komplette browsere, robotter og
webarkiver .
Problemer med at vise ikke-standardkoder i nogle ajax-scripts
AJAX og kyrilliske spørgsmål er genstand for mange diskussioner på internettet
[6] .
Langsom hastighed i grov programmering
På trods af at AJAX oprindeligt blev designet specifikt til at øge hastigheden, kan den spille en grusom joke: Når der er mange AJAX-forespørgsler på én side, og for eksempel en liste indlæses for hvert klik, bliver AJAX-siden endnu langsommere end en traditionel.
Dårlig opførsel på upålidelige forbindelser
Hvis kommunikationen ofte går tabt (på grund af tab af operatør eller overbelastning af linket), kan den normale side i det mindste genindlæses. En AJAX-side (for eksempel med "uendelig" rulning) skal brugeren genindlæse fra begyndelsen og se efter, hvor han slap. Parallelt arbejde - en funktion af AJAX - har en negativ effekt her, idet den deler en allerede smal kanal i mange små forbindelser, og det er sandsynligt, at nogle af dem vil blive brudt. Problemet er delvist løst af History API.
Risiko
for anmodningsfabrikation fra andre websteder
Resultatet af en AJAX-anmodning kan være
JavaScript -kode (især
JSON ).
XMLHttpRequest er kun gyldig
inden for det samme domæne , og tagget <script> er det ikke. Hvis du skriver
< script type = "text/javascript" src = "http://example.org/inbox.php" ></ script >
derefter vil indbakken til den bruger, der er autoriseret på denne computer på denne computer, blive indsat i
HTMLexample.org -koden . Til beskyttelse bruges en
POST- anmodning. Men
GET anses for at være
idempotent og derfor cachelagret, POST er det ikke, så
Google indsætter en
uendelig løkke i begyndelsen af svaret : AJAX kan gøre hvad som helst med svaret, inklusive at fjerne løkken, og taggen <script>forbinder scriptet, som det er og løkker.
Alternative teknologier
I kronologisk rækkefølge:
Adobe Flash
Flash- teknologistakken (tidligere Macromedia Flash) i form af ActionScript 3, Adobe Flex og Flash Remoting danner det teknologiske grundlag for RIA (Rich Internet Applications), aktivt fremmet af Macromedia (erhvervet af Adobe ). Flash-teknologi er velegnet til en række applikationer, fra computerspil til komplekse forretningsapplikationsgrænseflader. Inden for rammerne af denne teknologi implementeres kraftfulde grafikstøtteværktøjer, som ikke er tilgængelige i de grundlæggende Ajax-værktøjer (selvom et stigende antal funktioner implementeres inden for HTML5- og CSS3-standarden).
Noter
- ↑ Jesse James Garrett. Ajax: En ny tilgang til webapplikationer . Adaptive Path (18. februar 2005). Hentet 1. marts 2021. Arkiveret fra originalen 12. februar 2021. (ubestemt)
- ↑ Fjernscripting med IFRAME Arkiveret 26. juni 2014 på Wayback Machine
- ↑ JsHttpRequest (downlink) . Dato for adgang: 24. december 2006. Arkiveret fra originalen 21. oktober 2007. (ubestemt)
- ↑ Dave Crane. Ajax i aktion . - Williams, 2008. - 640 s. — ISBN 9785845910349 . Arkiveret 12. december 2017 på Wayback Machine
- ↑ Historik/State API'er . Hentet 15. oktober 2012. Arkiveret fra originalen 19. oktober 2011. (ubestemt)
- ↑ AJAX og russiske bogstaver - kodningsproblem. (utilgængeligt link) . Hentet 15. august 2016. Arkiveret fra originalen 25. august 2016. (ubestemt)
Litteratur
- Brett McLaughin. At lære Ajax = Head Rush Ajax. - Sankt Petersborg. : Peter , 2007. - ISBN 978-5-91180-322-3 .
- Stephen Holzner. Ajax Programmer's Bible = Ajax Bible. - M . : Dialektik , 2009. - S. 553. - ISBN 978-5-8459-1502-3 .
- Dave Crane, Bear Bibo, Jordon Sonneveld. Ajax i praksis = Ajax i praksis. - M .: Williams , 2007. - ISBN 978-5-8459-1327-2 .
- Daniel Woolston. Ajax og .NET 2.0-platformen for professionelle = Pro Ajax og .NET 2.0-platformen. - M .: Williams , 2007. - S. 464. - ISBN 1-59059-670-6 .
- Dave Crane, Eric Pascarello, Darren James. AJAX i aktion: teknologi - Asynkron JavaScript og XML = Ajax i aktion. - M .: Williams , 2006. - S. 640. - ISBN 1-932394-61-3 .
Links
Web og hjemmesider |
---|
globalt |
|
---|
Lokalt |
|
---|
Typer af websteder og tjenester |
|
---|
Oprettelse og vedligeholdelse |
|
---|
Typer af layout, sider, websteder |
|
---|
Teknisk |
|
---|
Markedsføring |
|
---|
Samfund og kultur |
|
---|