Előadás a JavaScript működéséhez?
A JavaScript egy szkriptnyelv, amelyet a böngészőben használnak a felhasználói felület interakciójára. Brendan Eich volt az első, aki a Netspace Navigator webböngészőhöz készített JavaScript-motort a Netspace-nél. Ezt C nyelven implementálták, és a kódneve SpiderMonkey volt. Kezdetben Mocha volt a projekt neve, majd átkeresztelték LiveScriptre, végül amikor a Netspace és a Sun licencszerződést kötött, ismét átkeresztelték JavaScriptre. Ebben a témában azt fogjuk megismerni, hogyan működik a javascript. Bizonyára hallottunk már olyan népszerű motorokról, mint a V8, a Spider Monkey és még sok más. A különböző motoroknak különböző “kódnevei” vannak, például:
- V8 – az Operában használt motor & Chrome.
- SpiderMonkey – a Firefoxban használt motor.
- Trident, Chakra – az IE-ben használt motor & Nitro.
- ChakraCore – a Microsoft Edge-ben használt motor.
- SquirrelFish – a Safariban használt motor.
A javascripthez használt motor két fő komponensből áll:
Kezdés az ingyenes szoftverfejlesztő tanfolyam
Webfejlesztés, programozási nyelvek, szoftvertesztelés & egyéb
- Heap memória- itt történik a memória kiosztása.
- Call Stack – ez az a hely, ahol a stackeket meghívják és a kódot végrehajtják.
MEGJEGYZÉS:
A JavaScript, egyszálú programozási nyelv, ami azt jelenti, hogy egyetlen Call Stackkel rendelkezik, és így egyszerre egy dolgot képes elvégezni. A Call Stack alapvetően egy adatstruktúra, amely a programnak azt a pontját rögzíti, amelyik éppen végrehajtásra kerül. Ez a hívási verem hasonlít a többi veremhez, amelynek alapvető funkciói vannak, például ha belépünk egy függvénybe, akkor azt a verem tetejére tesszük. Ha egy függvényből vissza akarunk térni, akkor a verem tetejéről le kell ugranunk. Ez minden verem alapvető funkcionalitása. Mivel a JavaScript-funkciókat vezérlő motorokról beszélünk, ezek nagyon bonyolultak, de az alapvető dolgok, amelyeket tágabb értelemben minden motor végez, a következők:
- Ha a böngésző beolvassa a szkriptet, akkor a motor magába a böngészőbe van ágyazva.
- A szkript beolvasása után átalakítja (“lefordítja”) a szkriptet gépi nyelvre.
- Aztán a gépi kód fut, elég gyorsan.
Mit tudnak a böngészőn belüli JavaScript munkák?
- Módosítja a meglévő tartalmat, módosítja a stílusokat új HTML hozzáadásával az oldalakhoz.
- Szolgáltat olyan funkciókat, mint az egérkattintás, az egér lebegtetése stb. amelyek reagálnak a használat műveleteire.
- Kéréseket küld és fogad a hálózaton keresztül távoli szerverekhez, a teljes oldal betöltése nélkül, ahogy a felhasználó bevezeti. Az egyik ilyen technológia, amely nagyon híres, az AJAX.
- Ezzel lehet beállítani és megkapni a cookie-k értékeit, üzeneteket ad a felhasználóknak tájékoztatásra, figyelmeztetésre és egyéb célokra.
- Az ideiglenes adatok tárolására is képes a kliensoldalon.
Mit nem tudnak a böngészőn belüli JavaScript munkák?
A JavaScript képességei a böngészőn belül némileg korlátozottak a felhasználó biztonsága érdekében. A cél az, hogy megakadályozzák, hogy valamilyen harmadik fél weboldala hozzáférjen privát információkhoz vagy kárt tegyen a felhasználó adataiban. Az ilyen jellegű korlátozott hozzáférés néhány forgatókönyve:
- Alapértelmezés szerint a JavaScript egy weboldalon korlátozza a merevlemezen lévő tetszőleges fájlok olvasását/írását, másolását vagy programok végrehajtását. Még az operációs rendszer funkcióihoz sincs közvetlen hozzáférése. Néhány modern böngésző lehetővé teszi számára a fájlokkal való munkát is, de ugyanezek esetében a hozzáférés korlátozott, és csak akkor biztosított, ha a felhasználó bizonyos műveleteket végez, például “bedob egy fájlt” a böngészőablakba. Néhány módon a kamerával/mikrofonnal és más eszközökkel való interakcióra is van lehetőség, de ehhez szintén a felhasználó kifejezett engedélye szükséges. Így egy JavaScript-kompatibilis oldal nem engedélyezhet titokban webkamerát, vagy küldhet információt a távoli szervernek vagy bármely harmadik félnek.
- A különböző lapok vagy ablakok általában nem tudnak egymás példányairól. De technikailag ez nagyon is lehetséges. Ugyanezt nevezik “Same Origin Policy”-nek. Ahhoz, hogy ugyanez működjön, mindkét példánynak tartalmaznia kell valamilyen speciális JavaScript kódot, amely képes kezelni az egymás közötti adatcserét. De a korlátozás ismét a felhasználó biztonsága érdekében van. Például egy weboldal az abc.com URL-ről, amelyet a felhasználó megnyitott, nem férhet hozzá egy másik böngészőfülhöz az xyz.com URL-rel, és nem lophat el titokban információkat.
- Az alkalmazásával könnyen kommunikálhatunk a neten keresztül bármely távoli szerverrel vagy harmadik féllel, ahonnan az aktuális oldal származik. Biztonsági okokból azonban le van tiltva az a képessége, hogy adatokat fogadjon vagy küldjön más webhelyekről vagy tartományokból. De ugyanez még mindig lehetséges, amihez egyes JavaScript munkákhoz a távoli oldal kifejezett hozzájárulása szükséges. Ilyen korlátozást nem lehet biztosítani, ha a JavaScriptet nem a böngészőn belülről, hanem a böngészőn kívülről, azaz akár egy szerverről használnák. Azt is észreveheti, hogy a modern böngészők némelyike lehetővé teszi a plugin vagy bővítmény telepítését, amellyel a böngészőn belül használt JavaScript munkák kiterjesztett engedélyeket kapnak.
Mi teszi egyedivé a JavaScript munkát?
- Mint tudjuk, ez egy objektumalapú szkriptnyelv.
- C nyelven íródott. ez egy értelmezett nyelv.
- A tiszta JavaScript gyorsabb a DOM elérésében.
- A JavaScript munka használatával a felhasználó nagyobb kontrollt kap a böngésző felett.
- A dátumot és az időbélyeget is képes kezelni.
- A felhasználó böngészőjét és még az operációs rendszert is képes felismerni.
- Könnyűsúlyú.
- Egy szkriptnyelv, mint már említettük.
- Egy interpreter alapú szkriptnyelv.
- Ez nagy- és kisbetű érzékeny, azaz a szintaxis nagy- és kisbetű érzékeny.
- Objekt-alapú nyelv, mivel előre definiált objektumokat biztosít, mint a Java, de nem Java.
- A JavaScriptben minden egyes utasítást pontosvesszővel (;) kell lezárni.
- A legfontosabb dolog, amit a JavaScript biztosít, az a szkripteken belüli új függvények létrehozásának lehetősége. Egy függvényt a JavaScriptben a function használatával lehet deklarálni
- Teljes HTML és CSS támogatás.
- Ez nagyon könnyen használható.
- Támogatja az összes böngészőt.
Korlátozások
A sok előny mellett a JavaScriptnek van néhány korlátja is, amelyeket az alábbiakban ismertetünk:
- A JavaScript kliensoldalon van, és nem biztosít lehetőséget a lemezen lévő fájlok olvasására vagy írására.
- A JavaScript nem használható hálózati alkalmazásokhoz, mert nem nyújt ilyen jellegű támogatást.
- Nem biztosít olyan funkciókat, mint a többszálúság vagy a többprocesszor.
Következtetés
Ezzel együtt mindannyian megtudtuk, hogy néhány alapvető információ a JavaScript munkáinak fejlődéséről, néhány híres motorról, amelyek JavaScriptet futtatnak a webböngészőkben, melyek a JavaScript böngészőkön belüli tartásának előnyei, és mi történhetne, ha a JavaScriptet a böngészőkön kívül lehetne elhelyezni és futtatni. A JavaScript munka néhány olyan jellemzőjével is találkoztunk, amelyek használhatóvá és egyedivé tették, valamint néhány korlátozással/hátránnyal együtt. Ezzel tehát lezárom a témát arról, hogy hogyan működik a javascript, még sok mindent felfedezhetünk, amit a webről felfedezhetünk.
Elajánlott cikkek
Ez volt egy útmutató a JavaScript munkához. Itt megvitattuk az alapfogalmakat, a korlátokat és azt, hogy mi különbözteti meg a javascriptet a többitől. A következő cikkeket is megnézheti, ha többet szeretne megtudni –
- Cheat Sheet JavaScript
- Uses of JavaScript
- JavaScript vs JScript
- C# vs JavaScript