- Bemutatkozott a Poco X7 és X7 Pro
- Milyen okostelefont vegyek?
- Xiaomi 14T Pro - teljes a család?
- VoLTE/VoWiFi
- Honor Magic6 Pro - kör közepén számok
- Android alkalmazások - szoftver kibeszélő topik
- Huawei Mate X6 - keleti oldal, nyugati oldal
- Honor 400 Pro - gép a képben
- Samsung Galaxy S24 FE - később
- Motorola Edge 50 Neo - az egyensúly gyengesége
-
Mobilarena
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
válasz
PumpkinSeed #6683 üzenetére
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
Typescripthez nem értek, de az instanceof talán ebben az esetben is használható.
-
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
válasz
Mr Dini #6340 üzenetére
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
válasz
fordfairlane #6312 üzenetére
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
válasz
PumpkinSeed #6311 üzenetére
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
válasz
Hunmugli #6239 üzenetére
<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
válasz
Hunmugli #6228 üzenetére
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
válasz
Mr Dini #6184 üzenetére
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
válasz
Mr Dini #6167 üzenetére
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
válasz
Sk8erPeter #6133 üzenetére
Azóta se jelentkezett. Lehet, beleásta magát a javascript rejtelmeibe.
-
fordfairlane
veterán
válasz
sztanozs #6116 üzenetére
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
Persze, meg doktoráljon le formális nyelvekből, mielőtt megírná az első 10 sort meghaladó programját.
Jön egy kezdő tanácsot kérni, és beterítitek annyi anyaggal, amit nyugdíjaskoráig sem tanul meg. És még komolyan is gondoljátok, hogy ez a helyes módja megtanulni programozni.
-
fordfairlane
veterán
válasz
martonx #6058 üzenetére
Nem tudom, hogy kliens- vagy szerveoldali-e ez a dolog, de ezt a béna arrow szintaktikát felesleges túlzásnak tartom csupán arra, hogy a this-t másképp kezelje. Az, hogy meg lehet vele takarítani pár karakter begépelését a function() {}-hoz képest, az nekem nem szempont.
-
fordfairlane
veterán
válasz
Speeedfire #5990 üzenetére
kocsi.call(name, ajtok, urtartalom);
helyett
kocsi.call(this, name, ajtok, urtartalom);
vagy akár
kocsi.apply(this, arguments);
-
fordfairlane
veterán
-
fordfairlane
veterán
válasz
Mr Dini #5901 üzenetére
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
válasz
Mr Dini #5872 üzenetére
Laikusként használhatnád a for-t úgy, ahogy a specifikációban szerepel.
for([inicializálás], [ciklus feltétel], [ciklus utasítás]) {
utasítás;
}Első ránézésre ez valami überh@xOr for ciklus, amiben nincs se feltételvizsgálat, se léptetés, és emiatt végtelen ciklussá válik.
-
fordfairlane
veterán
válasz
PumpkinSeed #5780 üzenetére
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
válasz
Sk8erPeter #5731 üzenetére
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
válasz
libamajas #5725 üzenetére
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
válasz
Speeedfire #5680 üzenetére
items.push(Object.create(obj));
-
fordfairlane
veterán
válasz
zulu_mester #5672 üzenetére
A change event input és textarea esetén a focus elvesztésekor aktivizálódik.
-
fordfairlane
veterán
válasz
slice14 #5300 üzenetére
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
válasz
werszomjas #5096 üzenetére
7-es és 8-as Java Runtime-mal sem fut. Class not found exception.
-
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
válasz
Speeedfire #5067 üzenetére
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
válasz
Sk8erPeter #5065 üzenetére
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
válasz
PumpkinSeed #5059 üzenetére
A getElementsByClassName nem egy objektumot, hanem egy HTMLCollectiont ad vissza. For looppal végig kell menni rajta.
-
fordfairlane
veterán
válasz
Tibcsi55555 #5012 üzenetére
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.
Új hozzászólás Aktív témák
Hirdetés
- Bemutatkozott a Poco X7 és X7 Pro
- Milyen belső merevlemezt vegyek?
- Windows 10
- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- Tőzsde és gazdaság
- Házimozi belépő szinten
- Elektromos autók - motorok
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Mibe tegyem a megtakarításaimat?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- Csere-Beszámítás! Intel Core I9 14900KS 24Mag-32Szál processzor!
- BESZÁMÍTÁS! Intel Core i7 4790 4 mag 8 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! Apple Macbook Pro 15" 2019 i9 9980HK 32GB 500GB Radeon Pro 560X hibátlan működéssel
- Bomba ár! Lenovo Miix 510-12IKB : i5-7G I 8GB I 256GB SSD I 12" Touch I Cam I W11 I Garancia!
- Napi 1000 -ft tól elvihető RÉSZLETFIZETÉS BANKMENTES MSI Cyborg 15 A13VE
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest