-
7400 - 7301
10361 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - 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! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁ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
-
Nagyzoli27
csendes tag
Sziasztok!
Két különböző értéket szeretnék kicserélni de csak az egyiket cseréli. Tudtok segíteni?x.textContent.replace("Ft", "")
x.textContent.replace(",", ".") -
hiperFizikus
senior tag
Képben vagyok, öröm hír .
De ez csak azt jelenti, hogy a 3 főgomb és a 3 főcsoportgomok közül a legfőbb gomb két képe közül az egyik, a könyebbik működik . Természetesen a kép azt jelenti, hogy a szövegszerkezet rendesen betöltődik . Oda vagyok érte, bár még sokminden csinálni kellesz rajta . Nélkületek nem ment volna, vagy legalábbis nem ilyen gyorsan: kösszönöm nektek .
-
cattus
addikt
Most ez a porszem zavarja a tisztánlátásomat . Sok redukció után tudtam csak enyire leegyszerűsíteni ezt a zavaró kódproblémámat :
var xa01 = [ , ] , xe = [ ] ;// xa01[0] = xe ; xa01[1] = xe ;// xa01[0] = [ ] ; xa01[1] = [ ] ;// alert(xa01[0][0 ] +'\n'+ xa01[1][0] ) ;xa01[0][0] = 7 ; xa01[1][0] = 8 ;alert(xa01[0][0 ] +'\n'+ xa01[1][0] ) ;xa01[0][0] = 9 ;alert(xa01[0][0 ] +'\n'+ xa01[1][0] ) ;
Ha azxa01[0] = [ ] ; xa01[1] = [ ] ;-vel eresztem, akkor rendesen megy, az xa01[0][0] és xa01[1][0] különböző értékűek . Ha viszont azxa01[0] = xe ; xa01[1] = xe ;-vel eresztem, akkor rosszul megy, az xa01[0][0] és xa01[1][0] egyforma értékűek .
Miért van ez a másság ?Az első esetben
xa01[0]ésxa01[1]-nek amikor értéket adsz, akkor két különböző tömb lesz létrehozva, mivel JavaScript esetében ezt jelenti a[]szintaxis.A második esetben viszont egy már előre létrehozott tömböt (
xe) adsz odaxa01[0]-nak ésxa01[1]-nek. Ilyenkorxeértéke nem másolódik le, csak egy referencia lesz beállítva rá, és ezért válozik megxa01másik értéke, ha az egyiket változtatod. -
hiperFizikus
senior tag
Most ez a porszem zavarja a tisztánlátásomat . Sok redukció után tudtam csak enyire leegyszerűsíteni ezt a zavaró kódproblémámat :
var xa01 = [ , ] , xe = [ ] ;// xa01[0] = xe ; xa01[1] = xe ;// xa01[0] = [ ] ; xa01[1] = [ ] ;// alert(xa01[0][0 ] +'\n'+ xa01[1][0] ) ;xa01[0][0] = 7 ; xa01[1][0] = 8 ;alert(xa01[0][0 ] +'\n'+ xa01[1][0] ) ;xa01[0][0] = 9 ;alert(xa01[0][0 ] +'\n'+ xa01[1][0] ) ;
Ha azxa01[0] = [ ] ; xa01[1] = [ ] ;-vel eresztem, akkor rendesen megy, az xa01[0][0] és xa01[1][0] különböző értékűek . Ha viszont azxa01[0] = xe ; xa01[1] = xe ;-vel eresztem, akkor rosszul megy, az xa01[0][0] és xa01[1][0] egyforma értékűek .
Miért van ez a másság ? -
hiperFizikus
senior tag
-
cattus
addikt
A megadott kódod megy nekem, de változóval kellene . Próbáltam mindenféleképen változót belecsempészni, még eval()-lal is, da ha megy akkor 2 - 5 db vonást ad vissza .
var a1 = '||'; a2 = '\|\|'; a3 = '|';
isvar a1 = '\|\|'; a2 = '\|\|'; a3 = '\|';alert(a1.replace(/a2/g,a3)) ;
Hogyan kell változót csempészni oda ?Ne string-be mentsd el a regexet, hanem regexként, így:
a2 = /\|\|/gm -
hiperFizikus
senior tag
-
hiperFizikus
senior tag
A megadott kódod megy nekem, de változóval kellene . Próbáltam mindenféleképen változót belecsempészni, még eval()-lal is, da ha megy akkor 2 - 5 db vonást ad vissza .
var a1 = '||'; a2 = '\|\|'; a3 = '|';
isvar a1 = '\|\|'; a2 = '\|\|'; a3 = '\|';alert(a1.replace(/a2/g,a3)) ;
Hogyan kell változót csempészni oda ? -
sztanozs
veterán
Van nektek egy igazi fejtörőm :
var a1 = 'aa'; a2 = 'aa'; a3 = 'a';alert(a1.replace(new RegExp(a2,'g'),a3)) ;var a1 = '||'; a2 = '||'; a3 = '|';alert(a1.replace(new RegExp(a2,'g'),a3)) ;
Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?Escape-elni kell, mert néhány karakternek a reguláris kifejezésben saját jelentése van, pl.:
\ escape karakter. bármely karakter| vagy-vagy kifejezés^ sor eleje (illetve karakter szekvenciában negálás)$ sor vége[ karakter szekvencia eleje] karakter szekvencia vége( regex capturing-group eleje) regex capturing-group vége{ "többszörösítő" módosító eleje} "többszörösítő" módosító vége* nulla vagy többszöri előfordulás? nulla vagy egyszeri előfordulás+ egy vagy többszöri előfordulásezeket mind escape-elni kell
\-el -
cattus
addikt
Van nektek egy igazi fejtörőm :
var a1 = 'aa'; a2 = 'aa'; a3 = 'a';alert(a1.replace(new RegExp(a2,'g'),a3)) ;var a1 = '||'; a2 = '||'; a3 = '|';alert(a1.replace(new RegExp(a2,'g'),a3)) ;
Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?myStringVariable.replace(/\|\|/gm, '|')Eza változóban kicseréli az összes '||' karaktert '|' karakterre. -
#78693120
törölt tag
Van nektek egy igazi fejtörőm :
var a1 = 'aa'; a2 = 'aa'; a3 = 'a';alert(a1.replace(new RegExp(a2,'g'),a3)) ;var a1 = '||'; a2 = '||'; a3 = '|';alert(a1.replace(new RegExp(a2,'g'),a3)) ;
Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?Nem
RegExp-es, de hátha segít:var a1 = '||'; a2 = '||'; a3 = '|';
a1.split(a2).join(a3); -
Nagyzoli27
csendes tag
Egy másik kérdésem lenne, hogy ha importálni akarok egy szöveget másik oldalról azt meglehet oldani JS-el?
-
martonx
veterán
Sziasztok!
Egy programot akarok írni ami ki ír alert ablakban egy üzenetet minden 30. percen. Az a bajom a kóddal, hogy nem lép ki a functionből.setInterval(function f(){
x = new Date()
y = x.getMinutes()
if (y == 30){
alert()
clearInterval(f)}
}
)Const f = setinterval(() =>{
-
Nagyzoli27
csendes tag
Sziasztok!
Egy programot akarok írni ami ki ír alert ablakban egy üzenetet minden 30. percen. Az a bajom a kóddal, hogy nem lép ki a functionből.setInterval(function f(){
x = new Date()
y = x.getMinutes()
if (y == 30){
alert()
clearInterval(f)}
}
) -
I02S3F
addikt
Igen, reguláris . De én a reguláris kifelyezések trükkjeit nem ismerem . Mit kell írnom oda ?
Ebben nem tudok segíteni. Még nem tanultam js-t.
-
hiperFizikus
senior tag
-
I02S3F
addikt
Van nektek egy igazi fejtörőm :
var a1 = 'aa'; a2 = 'aa'; a3 = 'a';alert(a1.replace(new RegExp(a2,'g'),a3)) ;var a1 = '||'; a2 = '||'; a3 = '|';alert(a1.replace(new RegExp(a2,'g'),a3)) ;
Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ?"regionális karakterezés" - Reguláris kifejezés helyesen.
-
hiperFizikus
senior tag
Van nektek egy igazi fejtörőm :
var a1 = 'aa'; a2 = 'aa'; a3 = 'a';alert(a1.replace(new RegExp(a2,'g'),a3)) ;var a1 = '||'; a2 = '||'; a3 = '|';alert(a1.replace(new RegExp(a2,'g'),a3)) ;
Az első alert() szépen megy, és 1 db 'a' stringet ad vissza, de a második alert() nem így csinál, mert 5 db-os '|||||' ad vissza . Nyilván azért mert regionális jel részeként értelmezi . Hogyan kellene átírni ezt a **.replacet(), hogy ne regionális karrakterként értelmezze a '||' stringet és 1db '|' stringet adjon vissza, de a g kapcsoló is feltétlenül kell, a változók is kellenek-maradjanak, mert egy meglehetősen nagyméretű funkció monolit kicsi részei, megkeserítve az életemet ? Már ezt a hibát megtalálni benne is nehéz volt . A JS-nek elég bonyolult a regionális karakterezés módszere, hátha van valami kiskapu rá ? Vagy esetleg csak a böngészőm a régi ? -
hiperFizikus
senior tag
Ezt a splicet most alkalmaztam és bevált .
-
sztanozs
veterán
De a kérdés - az én értelmezésemben - az volt, hogy paraméterként átadva hogy tudja megváltoztatni (a funkció ugyanis nem tudja, hogy paraméterként milyen változót adtál át neki).
-
cattus
addikt
Sztorno az előző, azt hittem valamiért, hogy php topicban vagyok (meg a kérdést is egy kicsit félreértettem)

Szóval Javascriptben csak az objektumok kerülnek át referencia szerint, egyszerű típust nem lehet úgy átadni.
Kb így lehet megkerülni:
var e4 = {Value: 0};
function alma(a1,b2,c3){
b2.Value = 456;
return 123;
};
alma(4,e4,8);
alert(e4.Value);Ha a függvényen kívül definiálod a változót (ahogy az eredeti korban is volt), akkor még ez sem kell, simán meg tudod változtatni a függvények belül (még paraméterként se kell átadni).
-
sztanozs
veterán
Köszönöm sztanozsnak, ezt kerestem .
Már kezdek belejönni, több segéd funkciót is csináltam a fordításhoz . Most azon akadtam fenn, hogy hogyan lehet a funkció paramétereknek belőlről új értéket adni úgy, hogy azt funkción kívülről is használni lehesen utána ?var e4 = 0 ;function alma(a1,b2,c3){b2 = 456 ;return 123 ;};alma(4,e4,8) ;alert(e4);
Vagyis úgy hogy a e4 egyenlő legyen 456 -tal és ne 0 -val ? Hátha van rá valami kulcsszó, metódus ?
Sztorno az előző, azt hittem valamiért, hogy php topicban vagyok (meg a kérdést is egy kicsit félreértettem)

Szóval Javascriptben csak az objektumok kerülnek át referencia szerint, egyszerű típust nem lehet úgy átadni.
Kb így lehet megkerülni:
var e4 = {Value: 0};
function alma(a1,b2,c3){
b2.Value = 456;
return 123;
};
alma(4,e4,8);
alert(e4.Value); -
sztanozs
veterán
Köszönöm sztanozsnak, ezt kerestem .
Már kezdek belejönni, több segéd funkciót is csináltam a fordításhoz . Most azon akadtam fenn, hogy hogyan lehet a funkció paramétereknek belőlről új értéket adni úgy, hogy azt funkción kívülről is használni lehesen utána ?var e4 = 0 ;function alma(a1,b2,c3){b2 = 456 ;return 123 ;};alma(4,e4,8) ;alert(e4);
Vagyis úgy hogy a e4 egyenlő legyen 456 -tal és ne 0 -val ? Hátha van rá valami kulcsszó, metódus ?
var e4 = 0 ;
function alma(a1,b2,c3){
global e4;
b2 = 456;
e4 = b2;
return 123;
};
alma(4,e4,8);
alert(e4); -
bandi0000
nagyúr
Köszönöm sztanozsnak, ezt kerestem .
Már kezdek belejönni, több segéd funkciót is csináltam a fordításhoz . Most azon akadtam fenn, hogy hogyan lehet a funkció paramétereknek belőlről új értéket adni úgy, hogy azt funkción kívülről is használni lehesen utána ?var e4 = 0 ;function alma(a1,b2,c3){b2 = 456 ;return 123 ;};alma(4,e4,8) ;alert(e4);
Vagyis úgy hogy a e4 egyenlő legyen 456 -tal és ne 0 -val ? Hátha van rá valami kulcsszó, metódus ?
this.e4=456
-
hiperFizikus
senior tag
Köszönöm sztanozsnak, ezt kerestem .
Már kezdek belejönni, több segéd funkciót is csináltam a fordításhoz . Most azon akadtam fenn, hogy hogyan lehet a funkció paramétereknek belőlről új értéket adni úgy, hogy azt funkción kívülről is használni lehesen utána ?var e4 = 0 ;function alma(a1,b2,c3){b2 = 456 ;return 123 ;};alma(4,e4,8) ;alert(e4);
Vagyis úgy hogy a e4 egyenlő legyen 456 -tal és ne 0 -val ? Hátha van rá valami kulcsszó, metódus ?
-
sztanozs
veterán
Javítás
, időközben változott a helyzet, mert elgépeltem a másik laptopomon : Mégsem false hanem true, de miért vált át az xa1.length 4 -ből 5-re, amikor mindkettő undefined ? A typeof is pedig mindkettőnél mégiscsak undefined lesz .Azért mert azzal az
xa1[4] = undefined;utasítással létrehoztad az 5. elemet és abba tettél egyundefined-ot.
Ha szeretnéd törölni az elemet, akkor
- utolsó elem törlésexa1.pop();
- tetszőleges elem (ix) törlésexa1.splice(ix, 1); -
Zedz
addikt
Már nincs olyan jókedvem . Egy napi kimerítő keresgélés után erre lyukadtam ki, amin fennakadtam rendesen :
<html><head><title>próba 01</title></head><body><SCRIPT Language="JavaScript" >var xa1 = [0,1,2,3] ;alert(xa1.length +'\n'+ xa1[0] +'\n'+ xa1[xa1.length]) ;xa1[4] = undefined ;alert(xa1.length +'\n'+ xa1[0] +'\n'+ xa1[xa1.length]) ;alert(xa1[4] == xa1[xa1.length]) ; // ez miért lesz false ?</SCRIPT></body></html>Ez az
alert(xa1[4] == xa1[xa1.length]); // miért lesz false , amikor azxa1.length:= 5 épen ? Azt szeretneém, hogy true legyen, mit kell tennem hozzá ?Nem mindenkinek való ez a szakma, gondolkozz el azon, hogy valakit megfizetsz inkább.

-
bandi0000
nagyúr
Javítás
, időközben változott a helyzet, mert elgépeltem a másik laptopomon : Mégsem false hanem true, de miért vált át az xa1.length 4 -ből 5-re, amikor mindkettő undefined ? A typeof is pedig mindkettőnél mégiscsak undefined lesz .valszeg az okozhat gondot, hogy a "hosszadik" elem nem létezik, ha 4 elemű a tömb akkor nincs 4. csak 3. elem az az utolsó
-
hiperFizikus
senior tag
Időközben egy picit előrébb jutottam, de mg mindig nem értem:
alert(typeof xa1[4] +'\n'+ typeof [xa1.length]) ;
A bal string -et ad, a jobb number -ot ad . Egyrészt miért, másrészt a string -esből hogyan csinálhatok number -os undefined -et ?
Javítás
, időközben változott a helyzet, mert elgépeltem a másik laptopomon : Mégsem false hanem true, de miért vált át az xa1.length 4 -ből 5-re, amikor mindkettő undefined ? A typeof is pedig mindkettőnél mégiscsak undefined lesz . -
hiperFizikus
senior tag
Már nincs olyan jókedvem . Egy napi kimerítő keresgélés után erre lyukadtam ki, amin fennakadtam rendesen :
<html><head><title>próba 01</title></head><body><SCRIPT Language="JavaScript" >var xa1 = [0,1,2,3] ;alert(xa1.length +'\n'+ xa1[0] +'\n'+ xa1[xa1.length]) ;xa1[4] = undefined ;alert(xa1.length +'\n'+ xa1[0] +'\n'+ xa1[xa1.length]) ;alert(xa1[4] == xa1[xa1.length]) ; // ez miért lesz false ?</SCRIPT></body></html>Ez az
alert(xa1[4] == xa1[xa1.length]); // miért lesz false , amikor azxa1.length:= 5 épen ? Azt szeretneém, hogy true legyen, mit kell tennem hozzá ?Időközben egy picit előrébb jutottam, de mg mindig nem értem:
alert(typeof xa1[4] +'\n'+ typeof [xa1.length]) ;
A bal string -et ad, a jobb number -ot ad . Egyrészt miért, másrészt a string -esből hogyan csinálhatok number -os undefined -et ?
-
hiperFizikus
senior tag
Már nincs olyan jókedvem . Egy napi kimerítő keresgélés után erre lyukadtam ki, amin fennakadtam rendesen :
<html><head><title>próba 01</title></head><body><SCRIPT Language="JavaScript" >var xa1 = [0,1,2,3] ;alert(xa1.length +'\n'+ xa1[0] +'\n'+ xa1[xa1.length]) ;xa1[4] = undefined ;alert(xa1.length +'\n'+ xa1[0] +'\n'+ xa1[xa1.length]) ;alert(xa1[4] == xa1[xa1.length]) ; // ez miért lesz false ?</SCRIPT></body></html>Ez az
alert(xa1[4] == xa1[xa1.length]); // miért lesz false , amikor azxa1.length:= 5 épen ? Azt szeretneém, hogy true legyen, mit kell tennem hozzá ? -
bandi0000
nagyúr
Ha a function futását meg akarom szakítani, azt melyik kulcsszóval kell tenni ? exit ? A ciklusnál a break, de a functionnál mi ?
function név(){utasításutasításexit ???utasításutasítás}; -
cattus
addikt
Ha a function futását meg akarom szakítani, azt melyik kulcsszóval kell tenni ? exit ? A ciklusnál a break, de a functionnál mi ?
function név(){utasításutasításexit ???utasításutasítás};Ajánlom figyelmedbe a kulcsszavas kereső (angolul történő) használatát, ugyanis nagyon sok kört meg tud spórolni neked a későbbiekben is.
-
hiperFizikus
senior tag
Ha a function futását meg akarom szakítani, azt melyik kulcsszóval kell tenni ? exit ? A ciklusnál a break, de a functionnál mi ?
function név(){utasításutasításexit ???utasításutasítás}; -
bandi0000
nagyúr
Kösz, ezt jobban értem .
nyugodtan rá lehet keresni kulcsszavakkal arra amit akarsz csinálni, mert ami nincs megolva már pl stacko-n az nem is létezik

-
hiperFizikus
senior tag
-
bandi0000
nagyúr
Ha odáig fajul a dolog, és csak ez hiányzik az egészből, és megam nem tudok zöldágra vergődni vele, akkor rászánok egy kevés pénzt is, de csak ekkor . Persze, hogy eljutok-e sokára odáig, az még a levegőben lóg . Milliomos nem vagyok, úgy hogy sokra neszámítsatok . Majd a https://www.w3schools.com linken keresgélek .

[pl] de sokat segït a google is kulcsszavas keresésnél
-
hiperFizikus
senior tag
Ha odáig fajul a dolog, és csak ez hiányzik az egészből, és megam nem tudok zöldágra vergődni vele, akkor rászánok egy kevés pénzt is, de csak ekkor . Persze, hogy eljutok-e sokára odáig, az még a levegőben lóg . Milliomos nem vagyok, úgy hogy sokra neszámítsatok . Majd a https://www.w3schools.com linken keresgélek .

-
hiperFizikus
senior tag
-
coco2
őstag
Websocketot használnék kérdés / válasz jelleggel kb 1 kbyte vagy rövidebb stringek küldözgetésére oda-vissza. Az lenne a hossza text karakter számban. Van arra valami beépített lehetőségem javascriptben hogy a stream-ből automatán keretet szervezzen, és csomagjaim legyenek sorfolytonos karakterek helyett, vagy azt magamnak kell csinálnom "ahogy tetszik" ?
-
rikxjeee
tag
-
Zedz
addikt
Megnéztem, de csak komplikáltabb .
Engem így érdekelne:function KiIras01(string01, link01){// ide mit tegyekreturn string02};function BeOlvas01(link01){// ide mit tegyekreturn string02};function hireMe() {
return "Ha megmondod mi kell, akkor megfelelo penzert inkabb megcsinalom.";
}
-
hiperFizikus
senior tag
"a fordítás különbözeteit"
Tessék?
"Ez a JS -ben, hogy van ?"
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/FileUtils.jsmVéletlenül se a dokumentációban nézd meg...
Megnéztem, de csak komplikáltabb .
Engem így érdekelne:function KiIras01(string01, link01){// ide mit tegyekreturn string02};function BeOlvas01(link01){// ide mit tegyekreturn string02}; -
rikxjeee
tag
Valamelyik, ill. egyes programnyelvben úgy lehet **.txt kiterjesztésű fájlba kiküldeni és olvasni stringet, hogy nem kell nekem funkciót írni hozzá . Ez a JS -ben, hogy van ?
Ha nincs a JS -ben ilyen, akkor hogyan kell megírni ezt a txt fájlba kiküldő és beolvasó funkciót; biztosan használtok is ilyet úgy, hogy nem is kell ekkor újraírnotok, hanem csak bemásolni ide ? Előre is nagyon köszönöm . Ugyani a RunTime mód nehéz nekem .
"a fordítás különbözeteit"
Tessék?
"Ez a JS -ben, hogy van ?"
https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/FileUtils.jsmVéletlenül se a dokumentációban nézd meg...
-
hiperFizikus
senior tag
Valamelyik, ill. egyes programnyelvben úgy lehet **.txt kiterjesztésű fájlba kiküldeni és olvasni stringet, hogy nem kell nekem funkciót írni hozzá . Ez a JS -ben, hogy van ?
Ha nincs a JS -ben ilyen, akkor hogyan kell megírni ezt a txt fájlba kiküldő és beolvasó funkciót; biztosan használtok is ilyet úgy, hogy nem is kell ekkor újraírnotok, hanem csak bemásolni ide ? Előre is nagyon köszönöm . Ugyani a RunTime mód nehéz nekem .
-
hiperFizikus
senior tag
-
#57018880
törölt tag
Most ezen boszankodok:
*.slice() , *.substr() , *.sobstring() ,
Ezek mind nagyjából ugyanazt csinálják . Miért ?
Vannak még ezeknek megfelelő funkciók ?
Mit kell tudnom ezekről ?
Mondjuk ezen kár bosszankodni, ha neked kellene pluszban megírni ezeket is az jobb lenne?

'ab'.slice(-1) == ['a','b'].slice(-1) -
hiperFizikus
senior tag
-
cattus
addikt
Most ezen boszankodok:
*.slice() , *.substr() , *.sobstring() ,
Ezek mind nagyjából ugyanazt csinálják . Miért ?
Vannak még ezeknek megfelelő funkciók ?
Mit kell tudnom ezekről ?
A substr() deprecated, tehát már nem érdemes használni.
A slice() és a substring() között a fő különbség, hogy az előbbi elfogad negatív számokat is.
-
hiperFizikus
senior tag
Most ezen boszankodok:
*.slice() , *.substr() , *.sobstring() ,
Ezek mind nagyjából ugyanazt csinálják . Miért ?
Vannak még ezeknek megfelelő funkciók ?
Mit kell tudnom ezekről ?
-
martonx
veterán
Sziasztok!
Cookie kérdés, google chrome környezet, kliens oldal. Vastag réteg kliensen töröm a buksit, és jól jönne nekem domain-hez tartozóan 3-400 byte-nyi szöveges stringet tárolni, amit nem küld fel a szervernek csatlakozáskor. Bele éppen nem halok, ha mégis felküldi, egyszerűen csak semmi szükségem rá szerver oldalon, és lespórolnám, ha lehet. Van olyan opcióm szabvány szerint támogatottan?
localstorage api
-
coco2
őstag
Sziasztok!
Cookie kérdés, google chrome környezet, kliens oldal. Vastag réteg kliensen töröm a buksit, és jól jönne nekem domain-hez tartozóan 3-400 byte-nyi szöveges stringet tárolni, amit nem küld fel a szervernek csatlakozáskor. Bele éppen nem halok, ha mégis felküldi, egyszerűen csak semmi szükségem rá szerver oldalon, és lespórolnám, ha lehet. Van olyan opcióm szabvány szerint támogatottan?
-
Dißnäëß
nagyúr
Szvsz ez nem összeszemetelés. Nekem is a jól belakott win-emen fut minden (kivéve adatbázis, az a felhőben fut). Pláne, hogy az a "minden", az kb. semmi se tárhelyben, se erőforrásban.
Win10 alá nem kell VM-mel se szórakozni, simán a Store-ból letöltesz egy ubuntu-t, és máris mehet a móka, ha ragaszkodsz a linuxhoz.Ez sokmindent leegyszerűsít. Köszi, megpróbálom. (Egy külön user-t hozok létre azért W10 alatt a rend kedvéért)

-
martonx
veterán
Sziasztok, kezdem.
w3schools, Udemy. A jó öreg klasszik menetrend: HTML, CSS, JS.Hogy állnátok neki ? Adott egy desktop gép. Szemeteljem össze a W10-emet a vackaimmal, vagy rántsak fel pár virtuális gépet VirtualBox alatt a gyakorlásokra, mit ajánlotok ? (Vmi Ubuntuval bennük, de tőlem lehet az is mind W10, van elég RAM is, CPU is).
Illetve kicsit minden mást is érintve, mennétek a sok cég által használt úton, hogy van egy fejlesztőkörnyezet (DEV), egy vagy több tesztelő (DEV TEST, UAT stb.) illetve éles (PROD), vagy egyelőre nem szarakodnátok ilyennel ? Infrához konyítok alap dolgokat, VM-ekben linuxot, docker konténereket megoldok, de valami jól bevált gyakorlat kellene nekem, amivel a frissen telepített és alapvetően Photoshop-al és játékkal belakott W10-emet nem szemetelem agyon (gondolok böngészőre, előzményekre, minden fiszfaszra).
Valami jólbevált utat szeretnék járni, ami saccperkábé optimális lehet elmélyedni a témában.

Szvsz ez nem összeszemetelés. Nekem is a jól belakott win-emen fut minden (kivéve adatbázis, az a felhőben fut). Pláne, hogy az a "minden", az kb. semmi se tárhelyben, se erőforrásban.
Win10 alá nem kell VM-mel se szórakozni, simán a Store-ból letöltesz egy ubuntu-t, és máris mehet a móka, ha ragaszkodsz a linuxhoz. -
Dißnäëß
nagyúr
Sziasztok, kezdem.
w3schools, Udemy. A jó öreg klasszik menetrend: HTML, CSS, JS.Hogy állnátok neki ? Adott egy desktop gép. Szemeteljem össze a W10-emet a vackaimmal, vagy rántsak fel pár virtuális gépet VirtualBox alatt a gyakorlásokra, mit ajánlotok ? (Vmi Ubuntuval bennük, de tőlem lehet az is mind W10, van elég RAM is, CPU is).
Illetve kicsit minden mást is érintve, mennétek a sok cég által használt úton, hogy van egy fejlesztőkörnyezet (DEV), egy vagy több tesztelő (DEV TEST, UAT stb.) illetve éles (PROD), vagy egyelőre nem szarakodnátok ilyennel ? Infrához konyítok alap dolgokat, VM-ekben linuxot, docker konténereket megoldok, de valami jól bevált gyakorlat kellene nekem, amivel a frissen telepített és alapvetően Photoshop-al és játékkal belakott W10-emet nem szemetelem agyon (gondolok böngészőre, előzményekre, minden fiszfaszra).
Valami jólbevált utat szeretnék járni, ami saccperkábé optimális lehet elmélyedni a témában.

-
cattus
addikt
-
#57018880
törölt tag
Konzolban szeretném.
Tehát:document.querySelector(" img").style
Csak a styleval nem sikerültconsole.log(
(()=>{
return getComputedStyle( document.querySelector('.class') ).getPropertyValue('color');
})()
); -
Nagyzoli27
csendes tag
-
sztanozs
veterán
Sziasztok
Hogy lehet egy classnak a css kódját előcsalni, ami nem egy element.stlye hanem egy külső doksiban van?
Köszönöm
F12
-
Nagyzoli27
csendes tag
Sziasztok
Hogy lehet egy classnak a css kódját előcsalni, ami nem egy element.stlye hanem egy külső doksiban van?
Köszönöm
-
K1nG HuNp
őstag
const [createAnswer] = useMutation(CREATE_ANSWER, {
update(cache, { data: { createAnswer } }) {
const { question } = cache.readQuery({ query: GET_QUESTION, variables: { id: props.match.params.questionid } })
cache.writeQuery({
query: GET_QUESTION,
data: {
question: {
...question,
answerCount: question.answerCount + 1,
answers: [...question.answers, createAnswer],
},
},
})
},
})egész durván kifolyik a szemem ettől
életemben nem használtam ennyi objectet mint amit GraphQL / apollohoz kell.A legszebb hogy inkább refetchelném a francba az egészet egy adatmódosítás (itt egy uj kerdes pl) után, de mint kiderült olyat csinálni nagyon szembemegy az user élménnyel. Így ugye cacheba írással minden instant
-
martonx
veterán
-
disy68
aktív tag
-
K1nG HuNp
őstag
engem amúgy most már komolyan érdekel a projekt, ennyi elszántság mögött csak van valami...

-
hiperFizikus
senior tag
Nem kell megilyedni, eszem ágában sincs mindet bemásolni, meg kinek lenne kedve ezen átrágni magát . Csak majd ha elakodok akkor azt a kis részletet belőle bemásolom, úgy is rövid és közepes csomó funkcióból áll az egész, a pár hosszabbtól eltekintve .
-
Jim-Y
veterán
Sziasztok
Kb. 2 hét alatt napi 15 oldalonként átírtam a programomat JS-re, 148 oldal 40 sor/oldal lett belőle . De csak szintaxisra fogadta el a Google Chrome böngészőm, bár első ütemben így is akartam .
Most következne a futásra való elenőrzése, de elégé aggódom, hogy a https://www.w3schools.com nem lesz elég hozzá . Majd jelentkezem, hafennakadásomlesz, ami szinte biztos, hogy lesz . Ugye azért egy kicsit drukoltok nekem ?
Szia
Sajnos ebbe a topikba 150 oldal 50 sor alatt nem szoktunk hozzaszolast elfogadni de ugye nem haragszol?
-
hiperFizikus
senior tag
Sziasztok
Kb. 2 hét alatt napi 15 oldalonként átírtam a programomat JS-re, 148 oldal 40 sor/oldal lett belőle . De csak szintaxisra fogadta el a Google Chrome böngészőm, bár első ütemben így is akartam .
Most következne a futásra való elenőrzése, de elégé aggódom, hogy a https://www.w3schools.com nem lesz elég hozzá . Majd jelentkezem, hafennakadásomlesz, ami szinte biztos, hogy lesz . Ugye azért egy kicsit drukoltok nekem ?
-
K1nG HuNp
őstag
Dolgozik itt valaki nagyobb csapatban ahol esetleg használnak GraphQL-t?
Nálunk melóhelyen mindenki fullstack-ként próbálja megoldani az adott featuret, magában, backendtől frontendig, így annyira nem látnám értelmét a graphql használatnak (plusz már elég régi futó projektek, nem fogunk hirtelen váltani).
Viszont ahogy itthon próbálgatom és használom saját kis cuccoknál, elég durva absztrakciót biztosít a front-endeseknek, hogy konkrétan semmit sem kell tudniuk az adatról, csak elkérni abban a formában amelyre pont szükség van, se több se kevesebb.

Akivel eddig beszéltem a technológiáról az volt a véleménye, hogy ez megint csak egy javascriptes bandwagon ami 3 hónapig fancy meg trendi, de igazából semmi újat nem hoz

Picit tényleg durva az, hogy a JS ennyire pörögni tud és kéthetente kijön az új trendi és menő lib/framework, de én pont ezért tartom az egyik legjobb közösségnek azt ami kialakult a nyelv körül. Bár ne lenne 300 euro egy JSConf BP jegy...
-
I02S3F
addikt
Webfejlesztés során eddig különböző böngészők kapcsán csak a CSS okozott fennakadást számomra.
JS-ben egy ilyesi jött szembe, az pedig a String.contains() fv amit valamiért csak a mozilla motorja támogat. Persze egy sima indexOf használható bárhol helyette.A V8 beteg gyors, okkal használja a Node is motorként, de amúgy míg ezt a kommentet nem írtam meg nagyon eszembe sem jutott volna azon gondolkodni, hogy más js motoron vajon jó-e a kódom, szerintem neked sem kell.
"míg ezt a kommentet nem írtam meg nagyon eszembe sem jutott volna azon gondolkodni, hogy más js motoron vajon jó-e a kódom, szerintem neked sem kell." - Na, akkor ez a dolog jól működik, vagyis nem szükséges figyelni rá.
-
#78693120
törölt tag
Webfejlesztés során eddig különböző böngészők kapcsán csak a CSS okozott fennakadást számomra.
JS-ben egy ilyesi jött szembe, az pedig a String.contains() fv amit valamiért csak a mozilla motorja támogat. Persze egy sima indexOf használható bárhol helyette.A V8 beteg gyors, okkal használja a Node is motorként, de amúgy míg ezt a kommentet nem írtam meg nagyon eszembe sem jutott volna azon gondolkodni, hogy más js motoron vajon jó-e a kódom, szerintem neked sem kell.
A
String.contains()-et ne használd, mert nem szabványos és deprecated, de nem kizárt, hogy eltávolíták már.Helyette a
String.prototype.includes(), vagy az általad ajánlottString.prototype.indexOf()a jó megoldás. -
K1nG HuNp
őstag
Webfejlesztés során eddig különböző böngészők kapcsán csak a CSS okozott fennakadást számomra.
JS-ben egy ilyesi jött szembe, az pedig a String.contains() fv amit valamiért csak a mozilla motorja támogat. Persze egy sima indexOf használható bárhol helyette.A V8 beteg gyors, okkal használja a Node is motorként, de amúgy míg ezt a kommentet nem írtam meg nagyon eszembe sem jutott volna azon gondolkodni, hogy más js motoron vajon jó-e a kódom, szerintem neked sem kell.
-
I02S3F
addikt
Szia,
Sőt a Microsoftnak is van sajátja Chakra néven (bár ez már éppen kihalóban van). Minden nagy böngésző alá csináltak saját javascript engine-t. Hogy miért? Miért van minden országnak saját pénze? Mikor egy közös valuta is lehetne. Hát ezért.
Viszont mostanra elég jól szabványosodtak a javascript engine-ek, böngészők. Ez alól mára egyedül a halál fos Safari a kivétel, míg régebben az Internet Explorer volt ilyen (hál istennek az IE kihalt, remélem a Safari is megdöglik előbb-utóbb).Köszönöm!
és neked is: (#7327) Rickeffe -
Rickeffe
aktív tag
-
martonx
veterán
Szia,
Sőt a Microsoftnak is van sajátja Chakra néven (bár ez már éppen kihalóban van). Minden nagy böngésző alá csináltak saját javascript engine-t. Hogy miért? Miért van minden országnak saját pénze? Mikor egy közös valuta is lehetne. Hát ezért.
Viszont mostanra elég jól szabványosodtak a javascript engine-ek, böngészők. Ez alól mára egyedül a halál fos Safari a kivétel, míg régebben az Internet Explorer volt ilyen (hál istennek az IE kihalt, remélem a Safari is megdöglik előbb-utóbb). -
I02S3F
addikt
Sziasztok! Olvastam, hogy van Google V8 JS Engine. Tehát a Firefox-nak is van sajátja. Miért írtak külön egyet (A Google) ? Hogy jobb és megfelelőbb legyen, mint az eddig megjelentek? Webfejlesztői szempontból mi a különbség? Programozás szempontjából?
-
#57018880
törölt tag
Sziasztok!
Vesszővel tagolt számot, hogy lehet számmá alakítani, hogy ne NaN értéket dobjon vissza?
Köszönöm!
Number( '127,2323'.replace(',','.') ) -
Nagyzoli27
csendes tag
Sziasztok!
Vesszővel tagolt számot, hogy lehet számmá alakítani, hogy ne NaN értéket dobjon vissza?
Köszönöm!
-
hiperFizikus
senior tag
-
cattus
addikt
Már kb. 10 oldalt megcsináltam, de elakadtam a tömböknél.
Az 1 dimenziós listás tömböt értem, csak azt nem tudom, hogy a 2 dimenziós táblázatokat, ill. mátrixokat, és a 3 dimenziós testeket, hogyan kódolják, nem beszélve a magasabb dimenziókról ?
keresgéltem a https://www.w3schools.com/js/js_arrays.asp -en de nem volt szerencsém.GoogleDuckDuckGo első találat.
-
hiperFizikus
senior tag
Már kb. 10 oldalt megcsináltam, de elakadtam a tömböknél.
Az 1 dimenziós listás tömböt értem, csak azt nem tudom, hogy a 2 dimenziós táblázatokat, ill. mátrixokat, és a 3 dimenziós testeket, hogyan kódolják, nem beszélve a magasabb dimenziókról ?
keresgéltem a https://www.w3schools.com/js/js_arrays.asp -en de nem volt szerencsém. -
hiperFizikus
senior tag
Én már belenyugodtam az első megoldásba. És lasacskán haladni kezdtem a 140 oldal átírásával . Kb. 1 oldal már megvan belőle, futási próba nélkül, csak nyers szintaxis helyesre véve. Már "csak" 139 oldalt kell megcsinálni. Nem tetszik a JS logikai operátorai, no de ez van.
-
cattus
addikt
-
hiperFizikus
senior tag
Mert a
function id1.onclick(){szerűséget láttam valahol, de nem tudom újra megtalálni.
Azt szeretném elérni vele hogy a script funkciója hívja meg az eventet, és ne a html tag eventje a funkciót .Lehet, hogy nincs is ilyen megoldás .
Nem szimulációt kerestem, hanem direkt átírást . -
K1nG HuNp
őstag
Mert a
function id1.onclick(){szerűséget láttam valahol, de nem tudom újra megtalálni.
Azt szeretném elérni vele hogy a script funkciója hívja meg az eventet, és ne a html tag eventje a funkciót .Az első megoldásod teljesen helyes, főleg, hogy egy mezei onClick-ről beszélünk.
Szimulálhatsz eventeket JS-ben, de szerintem nem akarsz.
Az eventek kapcsán szerintem azt kell megérteni, hogy html elemek váltják ki őket és te a JS kódodban fel tudsz rájuk iratkozni, az esetek 99%-ban így foglalkozunk az eventekkel, nagyon ritka amikor saját, szintetikus eventeket hozunk létre, vagy az előbb belinkelt módon JS-ből triggerelünk browser eventet.
Feliratkozni egy html elem eventjére sima JS-ben az addEventListener fv.-el szokás, vagy inline, a html-tagbe beleírni az eventet és azt a függvényt amelyet szeretnél meghívni az event megtörténtekor (ahogy azt tetted is az első példádban).
rikxjeee
Ez mi a ........

-
rikxjeee
tag
-
hiperFizikus
senior tag
-
cattus
addikt
Ez így működik:
<Input type="button" onClick="alma()" value="dió">function alma(){alert(1);}de ennek az alternatív kódját nem tudom helyre tenni. Hogyan kell?:
<Input type="button" ID="id1" value="dió">function id1.onclick(){alert(1);}Mit szeretnél elérni? Ha az első megoldás működik, miért nem felel meg?
-
hiperFizikus
senior tag
Ez így működik:
<Input type="button" onClick="alma()" value="dió">function alma(){alert(1);}de ennek az alternatív kódját nem tudom helyre tenni. Hogyan kell?:
<Input type="button" ID="id1" value="dió">function id1.onclick(){alert(1);} -
petyus_
senior tag
Köszönöm szépen a választ. Működik.
Csak azt nem értem így miért nem.var price = document.getElementById("price_net_netto_IDE_102").textContent
price.innerHTML= Number(price) + 1Mert a .textContent() egy stringet ad vissza, és ezen akarod beállítani az innerHTML-t.
-
Nagyzoli27
csendes tag
Köszönöm szépen a választ. Működik.
Csak azt nem értem így miért nem.var price = document.getElementById("price_net_netto_IDE_102").textContent
price.innerHTML= Number(price) + 1 -
Csepe
aktív tag
Sziasztok!
Az alábbi oldalnál szeretnék az nettó 510Ft-is árhoz hozzá adni 1-et. De valamiért hibába ütközöm. Tudtok segíteni?
Köszönöm
[link]Az alábbi kóddal próbáltam meg.
document.getElementById("price_net_netto_IDE_102").innerHTML= Number((this+1))Így működik:
var price = document.getElementById("price_net_netto_IDE_102")
price.innerHTML= Number(price.textContent) + 1 -
Nagyzoli27
csendes tag
Sziasztok!
Az alábbi oldalnál szeretnék az nettó 510Ft-is árhoz hozzá adni 1-et. De valamiért hibába ütközöm. Tudtok segíteni?
Köszönöm
[link]Az alábbi kóddal próbáltam meg.
document.getElementById("price_net_netto_IDE_102").innerHTML= Number((this+1)) -
sonar
addikt
Sziasztok,
Egy problémát szeretnék megoldani. De a js nagyon nem a területem.
Összehoztam egy táblázatot és azt szeretném megoldani, hogy ha cellákba kattintok akkor egy legördülő menü nyíljon le. Sajna nem jövök rá, hogyan is kellene helyesen csinálni. Legördülő lenyílik, de a tartalmak nem a cellának megfelelő.
próbáltam különböző ID-t adni a div-eknek és azt praméterként átadni a myFunction-nak, de vmit bénázok.<script>
/* When the user clicks on the button,
toggle between hiding and showing the dropdown content */
function myFunction() {
document.getElementById("myDropdown").classList.toggle("show");
}
// Close the dropdown if the user clicks outside of it
window.onclick = function(event) {
if (!event.target.matches('.dropbtn')) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
}
}
}
}
</script><td class="folyamatban">
<button onclick="myFunction()" class="dropbtn">Dropdown</button>
<div id="myDropdown" class="dropdown-content">
<a href="" target="_blank">Egy</a>
</div></td>
<td class="folyamatban">
<button onclick="myFunction()" class="dropbtn">Dropdown</button>
<div id="myDropdown" class="dropdown-content">
<a href="" target="_blank">ketto</a>
</div></td> -
coco2
őstag
A titkosítás teljesítményre gyakorolt hatását ketté kell bontani kapcsolatfelépítésre és a már felépített kapcsolaton keresztüli kommunikációra.
Egy TLS kapcsolatnál a felépítés költsége az igazán jelentős, ez hálózati oldalon egy extra RTT körből jön össze a protokoll miatt (a TLS1.3 és a neked ajánlott HTTP/2 rendelkezik zero-RTT opcióval, szóval ez eliminálható), CPU oldalon egy privát kulcsos műveletből, ami a kriptográfiai műveletek között messze a legdrágább.
Először lefuttattam egy Core i5-4590-en a kéznél levő őskövület, 2012-es OpenSSL 1.0.1c egy szálon futó sebességtesztjét:
sign verify sign/s verify/s
rsa 2048 bits 0.004417s 0.000136s 226.4 7361.3
rsa 4096 bits 0.032730s 0.000511s 30.6 1955.3Aztán beugrott, hogy azóta bekerülhetett AES-NI támogatás az OpenSSL-be és a CNG-be is (saját céges teszt volt RSA aláírás témakörben, azon az OpenSSL-t használó C kód és a CNG-t használó C# kód ugyanazt a teljesítményszintet nyújtotta), ezért fordítottam OpenSSL 1.1.1c-t, és lemértem azzal is:
sign verify sign/s verify/s
rsa 2048 bits 0.000616s 0.000029s 1623.4 33982.7
rsa 3072 bits 0.002859s 0.000060s 349.8 16806.2
rsa 4096 bits 0.006546s 0.000104s 152.8 9661.8Az előrelépés látványos, és a fenti processzor egyetlen szálon 1623 aláírást tud végrehajtani másodpercenként a most elterjedt 2048 bites kulccsal. Mivel ennek a kulcsméretnek várhatóan már csak pár éve van, hogy átcsússzon nem ajánlottba (bár addig még rengeteg, hogy határozottan kerülendő legyen), bekerült a 3072 és 4096 bites kulcsméret is, azokat is érdemes nézegetni, hogy mire lehet majd 8-10 éven belül számítani. Az ECC opciókat kihagytam, azok CPU erőforrásban a 2048 és 3072 bites RSA között vannak valahol korábbi céges tesztjeink alapján.
Ha már felépült a kapcsolat, akkor azon titkosítva mennek át az adatok, ez ma tipikusan AES128/AES256. Lássuk a teszteket (csak frissebb OpenSSL, itt 10% javulás volt csak a korábbihoz képest):
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 138254.38k 146752.33k 153316.83k 148921.83k 151887.48k 151125.24k
aes-192 cbc 107198.00k 121410.13k 124547.81k 122201.29k 128566.72k 129934.99k
aes-256 cbc 97304.25k 107784.19k 107225.75k 105430.48k 106100.13k 104593.96kAzaz a ma elterjedt AES128-cal egyetlen szál 138 MB/s sebességre képes a gépemen, ebbe az általad megadott 15 MB/s sebességigény röhögve belefér, egyetlen átlagosan erősnek nevezhető CPU egyetlen szála 11%-os terheléssel kiszolgálja a létrejött TLS csatornán a titkosítást, ezt én elhanyagolható erőforrástöbbletnek nevezném. Az AES128 várhatóan még sokáig velünk lesz ajánlott formában, itt erőforrás szempontjából a jövőre nézve a legrosszabb eset az AES256-ra áttérés jelenti.
A fentiekből látható, hogy nem kell hatalmas szerverfarm ahhoz, hogy kiszolgálj 10000 kapcsolódást, elég egy szerver megfelelően sok maggal, de az is látható, hogy a HTTP Keep-Alive funkcióra egyszerűen kötelező építeni, mert ezzel a kapcsolatfelépítést tudod megspórolni, minden kéréshez külön TLS csatornát építeni drága hobbi és ahhoz tényleg kell az erőforrás (azonban mivel böngésző a túloldal, ezért ahhoz komolyan meg kell dolgozni, hogy kiiktasd azon az oldalon a keep alive-ot).
10000 tps-hez a szervert megfelelően össze kell rakni. Felejtsd el az async idők előttről itt ragadt HttpListener-t, az ASP.NET Core-ra építs IIS vagy Kestrel alapokon (és azonnal kapsz HTTP/2 támogatást), ahogyan martonx ajánlotta, vagy ha pehelysúlyra vágysz HTTP/2 nélkül, akkor ott a uHttpSharp. A kérések kiszolgálását kizárólag async kód végezze kihasználva az aszinkron futás lehetőségét az összes IO műveletnél, mert ilyen terhelés töredékénél is luxusnak számít az 1 worker thread/kérés működés (az általad írt 1 process/kérés pedig teljes mértékben az).
További olvasnivaló a témában itt.
Hálás köszönetem a titkosítási performace reportért

Jól értettem, hogy az említett rsa sign kapcsolatépítés elején játszik csak? Ha igen, feltételezem, az ssl kapcsolat életben tartása a "nagyja", amit tehetek, és azt nem kellene elszúrni. Az XHR-nek utána kotorva olyasmit szűrtem le stackoverflow-n, hogy szerver kapcsolatépítésnél átdobja a http verziót, és ha az 1.1+, kliens oldalon a böngésző nyitva hagyja majd a tcp socketot az XHR teljesítése után is. Ha félreértettem, sikítsatok.
-
dqdb
nagyúr
A cert (kotorászás helyi szerveren), a session id (szintén kotorászás, temp file írás), az új process / thread (cpu költség az is +4 mega vagy több memória per processz) - ezek ott vannak mindegyik logikai framewrok aljában, és ha nem pár 10-el szorzod be, hanem pár 1000-el, élve felfalják a szervert.
A http/2 mire lenne jó nekem jelen esetben?
Egyenlőre úgy tűnik, xmlhttprequest és c# httplistener lesz belőle. Gyártok tesztet, amint beletörődtem a kudarcba, és majd meglátom az eredményeket. Ha kukás, eleresztem.
A titkosítás teljesítményre gyakorolt hatását ketté kell bontani kapcsolatfelépítésre és a már felépített kapcsolaton keresztüli kommunikációra.
Egy TLS kapcsolatnál a felépítés költsége az igazán jelentős, ez hálózati oldalon egy extra RTT körből jön össze a protokoll miatt (a TLS1.3 és a neked ajánlott HTTP/2 rendelkezik zero-RTT opcióval, szóval ez eliminálható), CPU oldalon egy privát kulcsos műveletből, ami a kriptográfiai műveletek között messze a legdrágább.
Először lefuttattam egy Core i5-4590-en a kéznél levő őskövület, 2012-es OpenSSL 1.0.1c egy szálon futó sebességtesztjét:
sign verify sign/s verify/s
rsa 2048 bits 0.004417s 0.000136s 226.4 7361.3
rsa 4096 bits 0.032730s 0.000511s 30.6 1955.3Aztán beugrott, hogy azóta bekerülhetett AES-NI támogatás az OpenSSL-be és a CNG-be is (saját céges teszt volt RSA aláírás témakörben, azon az OpenSSL-t használó C kód és a CNG-t használó C# kód ugyanazt a teljesítményszintet nyújtotta), ezért fordítottam OpenSSL 1.1.1c-t, és lemértem azzal is:
sign verify sign/s verify/s
rsa 2048 bits 0.000616s 0.000029s 1623.4 33982.7
rsa 3072 bits 0.002859s 0.000060s 349.8 16806.2
rsa 4096 bits 0.006546s 0.000104s 152.8 9661.8Az előrelépés látványos, és a fenti processzor egyetlen szálon 1623 aláírást tud végrehajtani másodpercenként a most elterjedt 2048 bites kulccsal. Mivel ennek a kulcsméretnek várhatóan már csak pár éve van, hogy átcsússzon nem ajánlottba (bár addig még rengeteg, hogy határozottan kerülendő legyen), bekerült a 3072 és 4096 bites kulcsméret is, azokat is érdemes nézegetni, hogy mire lehet majd 8-10 éven belül számítani. Az ECC opciókat kihagytam, azok CPU erőforrásban a 2048 és 3072 bites RSA között vannak valahol korábbi céges tesztjeink alapján.
Ha már felépült a kapcsolat, akkor azon titkosítva mennek át az adatok, ez ma tipikusan AES128/AES256. Lássuk a teszteket (csak frissebb OpenSSL, itt 10% javulás volt csak a korábbihoz képest):
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
aes-128 cbc 138254.38k 146752.33k 153316.83k 148921.83k 151887.48k 151125.24k
aes-192 cbc 107198.00k 121410.13k 124547.81k 122201.29k 128566.72k 129934.99k
aes-256 cbc 97304.25k 107784.19k 107225.75k 105430.48k 106100.13k 104593.96kAzaz a ma elterjedt AES128-cal egyetlen szál 138 MB/s sebességre képes a gépemen, ebbe az általad megadott 15 MB/s sebességigény röhögve belefér, egyetlen átlagosan erősnek nevezhető CPU egyetlen szála 11%-os terheléssel kiszolgálja a létrejött TLS csatornán a titkosítást, ezt én elhanyagolható erőforrástöbbletnek nevezném. Az AES128 várhatóan még sokáig velünk lesz ajánlott formában, itt erőforrás szempontjából a jövőre nézve a legrosszabb eset az AES256-ra áttérés jelenti.
A fentiekből látható, hogy nem kell hatalmas szerverfarm ahhoz, hogy kiszolgálj 10000 kapcsolódást, elég egy szerver megfelelően sok maggal, de az is látható, hogy a HTTP Keep-Alive funkcióra egyszerűen kötelező építeni, mert ezzel a kapcsolatfelépítést tudod megspórolni, minden kéréshez külön TLS csatornát építeni drága hobbi és ahhoz tényleg kell az erőforrás (azonban mivel böngésző a túloldal, ezért ahhoz komolyan meg kell dolgozni, hogy kiiktasd azon az oldalon a keep alive-ot).
10000 tps-hez a szervert megfelelően össze kell rakni. Felejtsd el az async idők előttről itt ragadt HttpListener-t, az ASP.NET Core-ra építs IIS vagy Kestrel alapokon (és azonnal kapsz HTTP/2 támogatást), ahogyan martonx ajánlotta, vagy ha pehelysúlyra vágysz HTTP/2 nélkül, akkor ott a uHttpSharp. A kérések kiszolgálását kizárólag async kód végezze kihasználva az aszinkron futás lehetőségét az összes IO műveletnél, mert ilyen terhelés töredékénél is luxusnak számít az 1 worker thread/kérés működés (az általad írt 1 process/kérés pedig teljes mértékben az).
További olvasnivaló a témában itt.
-
martonx
veterán
Az alkalmazáslogika saját problémáival egyébként is végezni kell. Az én problémám nem az. Az én problémám az, ha kényszerítő körülmények miatt csak annyira hatékonytalan eredményt lehetséges megalkotni, ami meg sem érdemli a bizalmat, hogy bármire is jó lesz. Az alkalmazásfejlesztésbe ölt hónapok ahhoz képest még mindig a kisebb probléma.
De nem kanyarodtunk el kicsit a topic-tól? Ez itt a javascript topic. Itt azért kérdeztem, hogy felvilágosítást kapjak róla, mi a legoverheadmentesebb hálózati adatkapcsolat, amit böngészős, kliens oldali javascript felkínálni képes lehet google chrome böngésző használatának peremfeltételével?
Kérdeztél, mi válaszoltunk, csak még hitetlenkedsz

-
martonx
veterán
A cert (kotorászás helyi szerveren), a session id (szintén kotorászás, temp file írás), az új process / thread (cpu költség az is +4 mega vagy több memória per processz) - ezek ott vannak mindegyik logikai framewrok aljában, és ha nem pár 10-el szorzod be, hanem pár 1000-el, élve felfalják a szervert.
A http/2 mire lenne jó nekem jelen esetben?
Egyenlőre úgy tűnik, xmlhttprequest és c# httplistener lesz belőle. Gyártok tesztet, amint beletörődtem a kudarcba, és majd meglátom az eredményeket. Ha kukás, eleresztem.
Pont ez az, hogy nincsenek ott, legalábbis az asp.net core, nodejs, python, go és még ki tudja mennyi esetben, ha nem használsz felettük proxy webszervert (mint pl. apache, amit a legelső hsz-emben is írtam, hogy nem szabad ebben az esetben használni, mégis mindig ezzel jössz...), hanem csak önmagukban bután futtatod őket, hogy mondjuk figyelnek a 443-as porton, és ennyi, akkor ezek egyik általad problémásnak tekintett dolgot se fogják figyelni (csak amit direkt felparaméterezel bennük, hogy figyeljenek, mert használni akarod)

-
sztanozs
veterán
Az alkalmazáslogika saját problémáival egyébként is végezni kell. Az én problémám nem az. Az én problémám az, ha kényszerítő körülmények miatt csak annyira hatékonytalan eredményt lehetséges megalkotni, ami meg sem érdemli a bizalmat, hogy bármire is jó lesz. Az alkalmazásfejlesztésbe ölt hónapok ahhoz képest még mindig a kisebb probléma.
De nem kanyarodtunk el kicsit a topic-tól? Ez itt a javascript topic. Itt azért kérdeztem, hogy felvilágosítást kapjak róla, mi a legoverheadmentesebb hálózati adatkapcsolat, amit böngészős, kliens oldali javascript felkínálni képes lehet google chrome böngésző használatának peremfeltételével?
pure http post és get ha kell visszaigazolás, különben mehet webrtc-n (UDP), de nem biztos, hogy megkapod az üzenetet. Persze vacakolhatsz sima tcp-vel is, de ki tudja meddig lesz támogatott (és az IE láz óta nem láttam olyan peremfeltételt, hogy kizárólag egy böngészőt lehet használni)
-
coco2
őstag
Az alkalmazáslogika saját problémáival egyébként is végezni kell. Az én problémám nem az. Az én problémám az, ha kényszerítő körülmények miatt csak annyira hatékonytalan eredményt lehetséges megalkotni, ami meg sem érdemli a bizalmat, hogy bármire is jó lesz. Az alkalmazásfejlesztésbe ölt hónapok ahhoz képest még mindig a kisebb probléma.
De nem kanyarodtunk el kicsit a topic-tól? Ez itt a javascript topic. Itt azért kérdeztem, hogy felvilágosítást kapjak róla, mi a legoverheadmentesebb hálózati adatkapcsolat, amit böngészős, kliens oldali javascript felkínálni képes lehet google chrome böngésző használatának peremfeltételével?
Új hozzászólás Aktív témák
-
7400 - 7301
10361 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - 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! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁ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
- Huawei Watch Fit 5 Pro - jó forma
- Formula-1
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- exHWSW - Értünk mindenhez IS
- Forza sorozat (Horizon/Motorsport)
- Milyen autót vegyek?
- Álláskeresés, interjú, önéletrajz
- Fejhallgató erősítő és DAC topik
- A Linux megnégyszerezte magát a Steamen — a Microsoft ismét ígérget
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



, időközben változott a helyzet, mert elgépeltem a másik laptopomon : Mégsem false hanem true, de miért vált át az xa1.length 4 -ből 5-re, amikor mindkettő undefined ? A typeof is pedig mindkettőnél mégiscsak undefined lesz .






