- Ismét életjelet adott magáról a Mionix, de most egy ízig-vérig csúcsegérrel
- Bővítményekkel zárkózna fel az Apple az AI versenyben
- TV vásárlási útmutató 2026 – OLED, QLED, melyiket érdemes megvenni?
- Olcsóbb opció jött a Keychrontól a num pados Q6 Ultra 8K-ra
- Nem muszáj egy vagyonba kerülnie egy korrekt egérnek
- TCL LCD és LED TV-k
- 3D nyomtatás
- Bambu Lab 3D nyomtatók
- Milyen billentyűzetet vegyek?
- Amlogic S905, S912 processzoros készülékek
- 5.1, 7.1 és gamer fejhallgatók
- Házi erősítő építése
- Olcsóbb opció jött a Keychrontól a num pados Q6 Ultra 8K-ra
- OLED monitor topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
fordfairlane
veterán
Én csak azt nem értem, hogyha, a mostani leírásod alapján, egy lista van, azon egy elem, ami két mezőből áll, egyik a számlálót, másik az évet tartalmazza (és ez így teljesen logikus), akkor hogyan működött az eredeti kódrészleted úgy, hogy néha az egyik update futott le, néha a másik. Az eredeti kódrész ugyanis két külön listára hajt végre két külön updatet.
Egyre zavarosabb ez az egész már nekem, asszem kiszállok ebből. Öregszem vagy nem tudom, mi...
-
fordfairlane
veterán
Illetve azóta már kicsit beleástam magam a témába és úgy tűnik, hogy a jquery alapból asszinkron hajtódik végre.
Egyrészt az aszinkron végrehajtás nem a jquery jellegzetessége, hanem a javascript engineké, másrészt nincs ellenőrizetlen aszinkronitás. A két update nem várja meg egymást, de a többi sorban, egymás után kerül végrehajtásra (jól is néznénk ki, ha nem így lenne) és ez elvileg nem okozhat problémát, mivel két, egymástól független listaelemen(elemein) hajtódik végre. Ennek elvileg működnie kéne, ezért kérdeztem rá a háttérben levő dolgokra.
A where-el kapcsolatban pedig nem probléma, ha az összes mezőt frissíti mivel csak 1-van minden oszlopban. Lehet, hogy igazából el is lehetne hagyni, csak nem tudom, hogy akkor alapértelmezett ként az összes mezőt átírná-e vagy sem azt még tesztelnem kell.
Hogy érted azt, hogy egy mező van minden oszlopban? Úgy érzem, keverednek a fogalmak.
Hány elem (rekord) van ezeken a listákon (táblákban)? Az elemek hány mezőből (oszlopból) állnak?
-
fordfairlane
veterán
Továbbra sem egyértelmű az adatszerkezet. Az eredeti hozzászólásban egy listát írtál, két oszloppal, a kód viszont két külön listát updatel. Méghozzá where feltételekkel updatel, nem ID-val, ami azt eredményezi, hogy függetlenül attól, hány elem (rekord) van az adott listán, egy lépésben az összes olyan listaelemet frissíteni fogja a megadott listán, amelyekre teljesül a where feltétel.
-
fordfairlane
veterán
Nem értek a Sharepointhoz, de itt valami nagyon nem stimmel.
Ha jól látom, van egy lekérdezés Targetlistről, és két külön update. Egyik a TargetListre, egy meg valami másikra. Minek van a lekérdezés, meg az "if" feltételvizsgálat, ha az update statementek "where" feltételében ott van, hogy mik azok a rekordok, amiket módosítani kell? A lekérdezés eredménye sehol nincs felhasználva az updateknél.
-
fordfairlane
veterán
Az OO remek találmány, de a Javascript (ES6, typescriptről nem tudok nyilatkozni) classokkal sok probléma van.
1. Maga az osztály teljesen felesleges, ha csak egyetlen példányt kell belőle gyártani. Csak egy újabb felesleges absztrakció.
2. Ha több példányt kell csinálni, akkor sincs rá szükség, ha nem használod a típusellenőrzést (Ha típuskonvertálást használsz, az meg valószínűleg tervezési hiba), Javascript alatt simán factory functionnel tudsz objektumokat sorozatgyártani.
3. Javascript alatt a new operátor (illetve az elhagyása) problémás a dinamikus this binding miatt.
4. Javascript alatt a class csupán syntactic sugar, ugyanaz a behavior-delegation van a háttérben, mint class nélkül, construktor functionnel a protottype-ra ráhúzott metódusoknál. Persze a class összeszedettebb szintaxis, de ugyanúgy működik (pl. menet közben átdefiniálhatsz metódusokat).
5. Az öröklés, mint OO kódújrafelhasználás súlyosan problémás módszer, különösen akkor, ha felülbírálsz metódusokat, és nem a SOLID elveknek megfelelően.Hirtelen ennyi jut eszembe.
-
fordfairlane
veterán
Csak az osztályba rakásról eszembe jutott Douglas Crockford véleménye a ES6 osztályokról. Én messze nem vagyok olyan képzett a formális nyelvekben, de tényleg valahogy ritka "ugly" konstrukciók.
-
fordfairlane
veterán
-
fordfairlane
veterán
Javascriptben a függvény vagy metódusparaméterek mindig opcionálisak. ES6-tól a függvény paramétereinek lehet default értéket adni, ES6 alatt pedig lehet használni az arguments objektumot.
-
fordfairlane
veterán
-
fordfairlane
veterán
Typescripthez nem értek, de az instanceof talán ebben az esetben is használható.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
Ez a tutorial egyszerűen szörnyű. A JSON nem objektum, hanem egy nyelvfüggetlen szövegalapú adatcsere-formátum, ami a javascript object-literal szintaxis szűkített változata. Amit te keresel az az ún. object literal, és az array-literal.
Object literal:
var a = {
key1: value,
key2: value,
key3: value
};value bármi lehet, amit változóba lehet tenni, másik objektum, tömb vagy függvény is.
Array literal:
var arr = [value1, value2, value3, value4];Az értékek itt is lehetnek akármik, amik egy értékadás jobboldalán szerepelhetnek, tehát akár objektumok vagy függvények is. Tömbnél a kulcsok numerikus növekvő értékek lesznek.
Javascriptben az objektumok egyszerű konténerek, amik névvel azonosítható propertyket tartalmaznak. A property értéke lehet akár tömb is. A tömbök is hasonlóképp tartalmazhatnak bármilyen elemet, így objektumokat és tömböket kvázi tetszőlegesen ágyazhatsz egymásba.
Ha a kettőt kombinálod:
var a = [
{
key1: [
{
key1: value
},
{
key1: function() {}
}
],
key2: [1, 2, 3]
},
{
key1: ["string1", "string2"],
}
]; -
fordfairlane
veterán
Tényleg nem tudom hová tenni a dolgot. Nem tusok sokat a Typescriptről, de tudtommal az object abban is object.
Ha jelen esetben auth.userProfile egy object, és van neki egy username nevű property-je, elvileg teljesen mindegy kell hogy legyen az, hogy dot notation vagy bracket - subscript notation-nel próbálod elérni. Még abban az esetben is, ha nem sima propertyről van szó, hanem getter-setter függvényről.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
Még mindig nem értem, miért ilyen elképesztően fontos ez a globális változó, mintha anélkül nem lehetne programot írni.
-
fordfairlane
veterán
-
fordfairlane
veterán
function addSchool() {}ugyanaz, mint
var addSchool = function() {}A function-on belül első hívásnál az első sor a függvény referenciáját felülírja, így másodjára már nem tudod meghívni.
-
fordfairlane
veterán
Mert ugyanolyan nevű globális változót használsz a függvényen belül objektumreferencia tárolásra, mint ami a függvényed neve.
-
fordfairlane
veterán
<meta charset="utf-8">Ezt rakd be a nyitó <head> után.
Ezt az F12-t majd fogom használni, amint rájövök, hogyan kell

F12, megjelenik az egész dev toolbar. Kiválasztod a konzol fület, ott látod a különféle hibajelzéseket is. Ha javascript hiba van, akkor így tudod a leggyorsabban kideríteni. Nincs itt semmi varázslat. Ez kábé ugyanaz Firefox, Chrome és IE11 alatt is.
Esetleg az előfordulhat, hogy egyes böngészőkben nem fog valami rendesen működni?
Ez a kód működni fog mindenféle böngészően, nem olyan bonyolult ez.
Amennyire láttam, a ++i előbb ad egyet i-hez, és "utána engedi i-t használni", míg az i++ "előbb használja i-t (pl írja ki) és csak utána növeli meg eggyel." i+++ van?
nem egészen, de for ciklus esetén mindegy, hogy pre- vagy postinceremnt van a léptetőkifejezésben. Nincs i+++; Négy kereszttel sincs.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
Ez nem off, nyugodtan hagyhattad volna feketében. Ha valami nem működik egy általunk összerakott oldalon, akkor manapság az első mozdulat a F12 használata legyen a böngészőben. Ez hozza elő a developer toolbart, ahol mindenféle eszközt találsz a hibakereséshez. Első körben nézd meg a console-t, ír-e valami javascript hibát.
-
fordfairlane
veterán
Pontosan. A success attribútumra be kell lőni egy függvényt, ami a kapott válasszal csinál is valamit. Egyébként a jquery load metódusa ebből a szempontból egyszerűbb.
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="utf-8">
</head>
<body>
<div id="target"></div>
<script src="//code.jquery.com/jquery-3.1.0.min.js"></script>
<script>
$("#target").load("localhost/test2.php");
</script>
</body>
</html> -
fordfairlane
veterán
A kódodban az XmlHttpRequest objektum open metódusában a harmadik paraméter true. Ez azt eredményezi, hogy aszinkron módban akarod használni. Ilyenkor az utána következő send metódus azonnal visszatér, nem várja meg a szerver válaszát. Vagy használd szinkron üzemmódban, vagy úgy használd, ahogy az én példakódomban.
1. new-val példányosítasz
2. onreadystate-re beállítod, hogy a response-nál mi történjen.
3. open(method, url, async)
4. setRequestHeader, amennyiben szükséges
5. sendÉs ha már functiont használsz, inkább a visszatérésben szerepeljen a responsedata, ne globális változóba tedd.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
Egy sima POST request küldése pár sorból megoldható, mindenféle framework nélkül.
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
// Ebben van a valasz: req.responseText;
}
}
req.open("POST", "submithandler.php", true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send("var1=data1&var2=data2&var3=data3");A Fetch API-val meg még egyszerűbb.
-
fordfairlane
veterán
-
fordfairlane
veterán
Azóta se jelentkezett. Lehet, beleásta magát a javascript rejtelmeibe.

-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
Ezzel a megoldással az a gond, hogy nem a tömb tartalmát jeleníti meg, hanem a meglévő elemek mögé kirajzol egy újabb elemet pirossal. Ezek után ennek az új elemnek csupán a szövegét hozzáadja a tömbhöz. Na de ha nem a tömb tartalmát jeleníti meg, akkor minek hozzáadni az utolsó elemet? Vagy pont ez volt a cél, hogy mindig újra hozzáadja azt az elemet, és csak az a legutolsó kell pirossal?
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
kocsi.call(name, ajtok, urtartalom);
helyett
kocsi.call(this, name, ajtok, urtartalom);
vagy akár
kocsi.apply(this, arguments);
-
fordfairlane
veterán
1. a var kulcsszót egyszer kell használni a number nevű változó esetében, mondjuk mikor először adsz neki értéket.
2. ha csak egy kép van, a while végtelen ciklust eredményez.
3. Ha number nem lehet nulla, mert a setWallpaper nem nullával indexeli a háttérképeket, akkor egyszerűbb a randomszám generálást úgy megírni, hogy egytől kezdődően dobjon számokat.Math.floor(Math.random() * (max - min)) + min;
azaz jelen esetben
Math.floor(Math.random() * (Hatterek.length - 1)) + 1;
4. Elég a while ciklusban randomszámot generálni, nem kell két Math.random sor.
Szóval ebben a formában valami ilyesmi célszerűbb:
var Hatterek = listFiles("Hatterek", false).split("\n");
var number;
if(Hatterek.length > 1) {
while(number == global('OldScrBcg')) {
number = Math.floor(Math.random() * (Hatterek.length - 1) + 1);
}
} else if(Hatterek.length == 1) {
number = 1;
}
if(number) {
setGlobal('OldScrBcg', number);
setWallpaper(Hatterek[number]);
} -
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
A websocket ara való, hogy folyamatosan nyitva legyen, és mindkét irányban bármikor működjön a kommunikáció. Egyébként épp most fejlesztünk egy olyan rendszert, ahol a websocketen csak a trigger jel megy, ami jelez, hogy valami változás történt, maga az adatlekérés és visszaadás ajax hívásokkal működik.
-
fordfairlane
veterán
Az elavult javascript anyagok szinte mindegyikére jellemző, hogy document.write-tal valósít meg kliensoldali dinamikus kódot, és ha oktatásról van szó, akkor az oktatónak, illetve vizsgáztatónak megfelelés legalább olyan fontos lehet, mint maga a tananyag. Ha nem fontosabb.
-
fordfairlane
veterán
Mondjuk ha valami ősrégi anyag alapján megy a js tanítás, akkor esetleg lehet az egész ciklus helyére tenni valami document.write -ot. A document.write-ba a teljes html-t bele kell pakolni. Valami ilyesmire gondolok, nem kidolgozva, csak hevenyészett pszeudokód szinten:
<div>
<script>
var i;
var napok = ["H", "K", "Sz", "Cs"];
var fokok = [2 3, 8, 5];
for(i = 0; i < napok.length; i++) {
document.write("<div>" + napok[i] + "</div>");
document.write("<div>" + fokok[i] + "</div>");
if(fokok[i] < 5) {
document.write("<img src='hideg.jpg'>");
} else {
document.write("<img src='meleg.jpg'>");
}
}
</script>
</div>Ez épp eléggé elavult módszer ahhoz, hogy megfeleljen az oktatási rendszer színvonalának.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
items.push(Object.create(obj));
-
fordfairlane
veterán
-
fordfairlane
veterán
A change event input és textarea esetén a focus elvesztésekor aktivizálódik.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
A típuskonverzió == és != esetén elég furcsán lett implementálva a Javascriptben, ezért használata minden esetben kerülendő. A legtöbb programozó azért használja ezt az operátort, mert a többi C-forma nyelvekben nincs vele különösebb probléma, vagy nem ilyen mértékű. A Javascript specialitásai nem mindenki számára ismertek.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
7-es és 8-as Java Runtime-mal sem fut. Class not found exception.
-
fordfairlane
veterán
-
fordfairlane
veterán
-
fordfairlane
veterán
De sokszor szukseg van arra, hogy klonozz egy objektumot.
A jóég tudja, hogy itt szükség van-e klónozásra vagy. teszAdat, meg egy = 1; ez aztán marha sokat elmond, hogy mire kell ez az egész. Konstansokat meg értékeket bepakolni egy objektumba nem klónozás, hanem sima prototipus használat, vagy még annyi sem.
var testArray = [];
testArray.push({egy: 1, ketto: 2});
testArray.push({egy: 3, ketto: 4});vagy
var testArray = [], testAdat;
function testAdatConstuct(egy, ketto) {
this.egy = egy;
this.ketto = ketto;
}
testAdat = new testAdatConstuct(1,2);
testArray.push(testAdat);
testAdat = new testAdatConstuct(3,4);
testArray.push(testAdat);Object.create-s példát nem írok, az már ES5.
Ez nekem alap objektumkezelésnek tűnik.
-
fordfairlane
veterán
-
fordfairlane
veterán
Ha két oldaltöltés közt akarsz állapotot eltárolni (ajax response-ok eredményét), azt sima változókban is megteheted. Ha újratöltődés után is akarsz adatokat elérni, még mindig egyszerűbb a szerveren tárolni sessionban, főként amiatt, mert a localStorage böngészőfüggő dolog.
Persze a localStorage-nak is meg van a létjogosultsága, de ahhoz ismerni kellene magát a megoldandó problémát.
-
fordfairlane
veterán
Mivel nem tudjuk, hogy pontosan mit és miért tárol el, ezért az sem biztos, hogy storage jellegű a feladat. Az is lehet, hogy szimpla Angular model is elég lenne a state tárolásához.

-
fordfairlane
veterán
A getElementsByClassName nem egy objektumot, hanem egy HTMLCollectiont ad vissza. For looppal végig kell menni rajta.
-
fordfairlane
veterán
-
fordfairlane
veterán
Szerveroldalon kell számolni, az meg attól függ, milyen a kiszolgáló. Ha nem Javascript, akkor nem megoldható javascripttel. Sokkal egyszerűbb egy kész számlálót használni.
-
fordfairlane
veterán
Új hozzászólás Aktív témák
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- EU: senki ne használjon Huawei és ZTE hálózati berendezéseket!
- Autós topik
- Honda topik
- Star Citizen
- A fociról könnyedén, egy baráti társaságban
- Szeged és környéke adok-veszek-beszélgetek
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Gyúrósok ide!
- Nintendo Switch 2
- TCL LCD és LED TV-k
- További aktív témák...
- Wacom Bamboo One CTF-430 rajztábla
- Apple iPhone 16 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- Lenovo T14s Ryzen 7 4750U 8 mag 16 szál 16Gb Ram 512 Gb NVMe Érintőkijelző Boltból Garanciával
- Új monitor állvány- elegáns megoldás a dupla A/4-es papírcsomag helyett - csak össze lett szerelve
- Ventilátor bazár /NZXT/CORSAIR/LIAN LI/DEEPCOOL/ZALMAN/120MM/140MM/VEZÉRLŐK/LED KIT-ek/
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

![;]](http://cdn.rios.hu/dl/s/v1.gif)

Egyidős a beépített JSON objektummal.




