-
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 Tabletek, E-bookok Nyomtatók, szkennerek 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
-
Archttila
veterán
[link]
Az eredeti kódod is tökéletesen működik. A teljes kódot bedobtad ide, vagy csak a lényeget az eredetiből? Mert ha az utóbbi, akkor a példa kedvéért törölt részekben lesz a hiba.Csak ennyi van elotte:
// ==UserScript==// @name Dereferer Remover// @description Remove dereferer on links// @author valaki// @namespace valami@gmail.com// @match https://ncore.pro/torrents.php*// @grant none// ==/UserScript== -
Archttila
veterán
Osszevonas utan egyik sem mukodik.
Linkre pelda:https://dereferer.me/?https://www.imdb.com/title/tt1448754/ -
T J
tag
-
Lokids
addikt
function dio(){
w = 42
}; //: func_
function alma(){
alert(w)
}; //: func_
dio() ; alma() ;Ha nem kerül a deklarációnál a neve elé
varvagylet, akkor globális lesz a változó. Egyúttal erre építeni egy nagyon rossz gyakorlat, mert a globális névteret úgy szemeteled tele, hogy ennek nem lesz nyoma a legfelső szinten. Szóval tessék csak rendesen globális változót gyártani, ha nem tudod megkerülni, hogy szükség legyen globális változóra.Ez így nem jó?
function dio(){
return w = 42
};
function alma(w){
alert(w)
};alma(dio); -
hiperFizikus
senior tag
Sikerült, ez lett belőle : OK .
, az hogy az a0li is [ ] lista ne zavarjon, mert csak egy közönséges értéket ad meg .
[a0li[2], b0li[3], b0li[0]] = [a0li[2], b0li[3], b0li[0]].RepLace(Chr(6),'°') ;Ennek ez az a,priori kódja : ajándékba, hogy segítettetek
String.prototype.Replace = function (a2,a3){// csak bedrótozvavar a1; a1= this ;return a1.replace(new RegExp(a2,'g'),a3)};// << >> Replace :String.prototype.RepLace = function (xc){var x, b1, a2, a3 ; b1= this ;for (x=0 ; x < UBound(xc) ; x= x+2){ // ! párba szedőa2= xc[x] ; a3= xc[x+1] ;b1 = b1.Replace(a2,a3) ;}; // forreturn b1 ;};// << >> RepLace :Array.prototype.RepLace = function (xc){var y, xc1 ; xc1= this ;for (y=0 ; y < UBound(xc1) ; y++){ // csak átutalóxc1[y]= xc1[y].RepLace(xc) ;}; // forreturn xc1 ;};// << >> RepLace :Lehetne-e ezt a hóbele-vackot egyszerűbb alakra hozni ?
Mit szóltok hozzá ♥
-
föccer
nagyúr
-
Mr. Y
őstag
Egy XHR/fetch kérésben a szervernek felküldöd a kliens UTC időt, az válaszban visszaküldi a saját UTC idejét, te pedig a kliensen a két érték különbségét ofszetként figyelembe veszed minden dátummal kapcsolatos megjelenítésben (szerveroldali logikában persze kizárólag a szerver idejét használod).
Köszönöm, ennek utána nézek
-
Mr. Y
őstag
-
Mr. Y
őstag
-
Taci
addikt
-
Taci
addikt
Alapvetően hibás, amit csinálni szeretnél. Persze mindenki valami hasonlót szeretne elérni, amikor először kell aszinkron hívást beépíteni az addig szinkron homokozójába, de ettől még nem így kell

1. az adatbázis-lekérdezés előtt letiltasz minden beviteli mezőt
2. a lekérdezés befejezésekor lefutó callbackben engedélyezed a mezőket
A módszer hátránya, hogy a letiltás látható változást hoz, ami gyors lefutás esetében zavaró villogást eredményezhet.1. az adatbázis-lekérdezés előtt az előtérbe hozol egy teljes oldalt lefedő 100%-os átlátszóságú
DIV-et, ami az egéreseményeket blokkolja az oldalon található elemek elől, a billentyűzetről neked kell gondoskodnod a fókusz valahová áthelyezésével
2. a lekérdezés befejezésekor lefutó callbackben a háttérbe küldöd aDIV-et
A módszer hátránya, hogy lassú lefutás esetében a felhasználó azt érzékeli, hogy "lefagyott" az oldal, mert akárhová klikkel, nem reagál1. az adatbázis-lekérdezés előtt ugyanazt csinálod, mint az előző megoldásban és
setTimeoutsegítségével ~300 ms késleltetéssel (a pontos értéket neked kell kikísérletezni, hogy a felhasználónak ne villogjon feleslegesen a képernyő, de ne érezze azt sem, hogy "lefagyott" az oldal)
2. ha asetTimeoutcallback fut le először, akkor előtérbe hozol egy másik teljes képernyősDIV-et, ami részlegesen átlátszó és rajta szöveggel, hogy várjon a user
2. a lekérdezés befejezésekor lefutó callbackben tolsz egycancelTimeout-ot, és a háttérbe küldöd mindkétDIV-etKöszönöm a tippet.
A UI már eleve így készült, felkészítve arra, hogy mi történjen, amíg eredményre vár az adatbázisból.
Ez most csak egy extrém ritka lehetőség, amit kezelni akartam, de úgy vagyok vele, legyen minden rendesen lekezelve, még akkor is, ha csak nagyon kis eséllyel fordulhat elő.
Szóval végül úgy oldottam meg, hogy az egész JS-kódrészt, ami a várt változóval dolgozna, beletettem egy setTimeout-ba, aminek a végén a várakozási időt egy változó állítja be. Ezt a változót a setTimeout előtt egy if-else állítja be: ha undefined a változó típusa, akkor még nem érkezett meg a válasz, ilyenkor váratom 500 ms-t (még tesztelem, hogy ez elég-e, vagy nem-e túl sok stb.). Ha viszont már megvan az érték, akkor 0-ra állítja, és azonnal lefut.
-
Taci
addikt
Más adatokat is tartalmaz a lekerdezesEredmenye, ezért egy az egyben nem tudom/akarom átadni.
Az lenne az ultimate cél, hogy az új lekérdezések (amik új értékekkel töltik fel a lekerdezesEredmenye változót) adatai a userData végére kerüljenek pluszban.
Tehát ha az első lekérdezésből feltöltött 10 elemet (0-9), akkor a következő lekérdezés ehhez fűzze hozzá, a 11. elemtől indulva.Pluszban szeretném, hogy ebből az új tömbből ami adattal (userrel) már dolgoztam, azt kiszedjen belőle (hogy ne pazaroljam a felhasznált helyet feleslegesen), de úgy, hogy az előző hozzáfűzős módszer miatt az "id-k" ne változzanak.
Tehát ha 10 elemem volt az első lekérdezésből, és a második lekérdezésig feldolgoztam 5-öt belőle, akkor magában a tömbben csak a hátra lévő 5 elem legyen (hogy ne foglalja a memóriát, mert kb. végtelenig nyúlhat a bővítés), viszont amint jönnek az adatok az új lekérdezésből, azok a 11. elemként kezdve kerüljenek be. (hogy az "id-jukra" megfelelő módon tudjak hivatkozni)Néztem a slice()-t de az csak új tömbbe rakja, 0-tól kezdőden, így az nem jó.
Esetleg még arra gondoltam, hogy simán csak "lenullázom" az értékét a már felhasznált tömb elemeknek. Pl. userData[0] = ""; (vagy hasonló, ahogy működik majd) -
sztanozs
veterán
Egyes oldalak a kérésekben a böngésző által küldött
Accept-Languagealapján megpróbálnak okosak lenni. Annyit tudsz tenni, hogy a böngésző beállításainál az angolt állítod át preferált nyelvre, ha főleg angol tartalmakat keresel (persze ilyenkor meg a magyar nyelvű tartalmat próbálják meg az ilyen oldalak angolra fordítani ...).Ez a header arra lenne jó, hogy egy többnyelvű oldal igazodjon a látogató által preferált nyelvhez, de nem arra, hogy mindezt semmire sem jó gépi fordítással érjék el.
Ráadásul egy csomó oldal IP-Location alapján szolgál ki és figyelembe se vesz mást.
-
martonx
veterán
-
Taci
addikt
Köszönöm szépen!
Ez a megoldás tuti eszembe nem jutott volna soha, főleg úgy, hogy csak sokadjára átnézve értettem meg, mi és hogyan is működik benne.Az escape-elést pedig már előtte megoldottam, ami keresőszavak a tömbbe bekerültek, azok már "tiszták".
Köszönöm még egyszer.
-
Taci
addikt
Ajánlott előtte a
textToMarktartalmának escape-elése, ha véletlenül regex számára speciális karaktert tartalmazna.var textToMark = "a*b*c";
var textContainer = "xxxx A*B*C yyyy a*b*c zzzz";
var escapeRegex = new RegExp(/[.*+?^${}()|[\]\\]/g, "g");
console.log(textToMark);
var textToMark = "(" + textToMark.replaceAll(escapeRegex, "\\$&") + ")";
console.log(textToMark);
var replaceRegex = new RegExp(textToMark, "gi");
console.log(textContainer);
textContainer = textContainer.replaceAll(replaceRegex, "<mark>$1</mark>")
console.log(textContainer);Ah, amit én ~50 sorban sem tudtam tökéletesen megoldani, te rendbe raktad ~10 sorban, úgy, hogy annak is a fele még logolás is...

Igazából kell még egy kis idő, hogy felfogjam, mi is történik itt...
(Értve ezalatt a $1-et és a zárójelezést avar textToMark-nál stb..)Ismételten köszönöm szépen mindenkinek!
@cstomee: Amikor ide írok, már túl vagyok nagyon sok keresésen, kutakodáson, utánajáráson. Próbálom ennek a fórumnak az eszét csak akkor igénybe venni, ha már tényleg nem találom a megoldást saját erőből.
És "sajnos" élettapasztalat, ha valamit már nem írok alaposan körbe az elején, akkor később magyarázkodhatok és pontosíthatok, elvesztegetve sok időt és energiát.
De köszönöm az észrevételt mindenképp, igyekszem a jövőben kevésbé regényesre ereszteni!
-
btz
addikt
Ha az
[A, B]intervallumot szeretnéd véletlen sorrendben felsorolni (mert amit leírtál, az nem véletlenszám-generálás, hanem véletlensorrend-generálás), akkor készíts egy tömböt[A, A+1, A+2, …, B-1, B]elemekkel, egyA-tólB-ig vagyA-tól(A+B+1)/2-ig menő ciklussal cserélj ki két elemet, ahol a két sorrendet véletlenszám-generátorral határozod meg. A generálás pedig mehet a tömbbőlshift()metódussal, amíg van benne valami.Másik lehetőség, hogy gyűjtöd egy listába az eddig kisorsolt számokat. Ha a lista hossza megegyezik a
B-A+1értékkel, akkor nem tudsz visszaadni semmit sem, mert elfogytak a lehetőségek. Ha rövidebb a lista, akkor addig generálsz véletlen számot, amíg az nem lesz benne a listában. A visszaadott számot hozzáfűzöd a listához. A módszer hátránya a másikkal szemben, hogy induláskor igaz, hogyO(1)időt igényelO(n)helyett, de a generálás már legjobb esetben isO(n×log n)leszO(1)helyett.Elég difficultnak hangzik, de megpróbálom. Egy kész beépített függvénynek jobban örültem volna.
-
alratar
addikt
-
alratar
addikt
function calcAmount() {
const hamburgerPrice = 1200;
const extra = parseInt(document.querySelector("input[name='extra']:checked").value);
const souce = parseInt(document.querySelector("select[name='souce']").value);
const quantity = parseInt(document.querySelector("input[name='quantity']").value);
document.querySelector("span[id='amount']").innerHtml = (hamburgerPrice + extra + souce) * quantity;
}Feltéve, ha jók a selectorok. Ilyenkor a legszerencsésebb megoldás legalább
console.loghívásokkal naplózni minden értéket, ha debugolni nem akarsz.A selectorok tuti jók, ugyanis a konzolon beírva a
document.querySelectorparancsot, jó eredményt ad vissza.Kiírattam consolera az eredményeket. PL:
const extra = parseInt(document.querySelector("input[name='extra']:checked".value));
console.log(extra);Az eredmény NaN.
-
btz
addikt
-
btz
addikt
-
btz
addikt
Ah, már értem.
Így már működik, viszont ha kétszer nyomok rá a startra, akkor nem.
https://www.w3schools.com/code/tryit.asp?filename=GENNT2VVWKHFPersze csinálhatnám azt, hogy első klikkre elrejtem a start gombot, de érzem én hogy az nem elegáns módszer.
-
btz
addikt
Úgy érted, hogy funkción kívül? De akkor meg nem lesz start funkcióm.
Egy másik példa:
Ha nem funkcióban van a változó, akkor megy:
https://www.w3schools.com/code/tryit.asp?filename=GENNHPYKDWURÍgy viszont már nem:
https://www.w3schools.com/code/tryit.asp?filename=GENNKLS0GE1L -
cSuwwi
senior tag
-
Nagyzoli27
csendes tag
-
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.
-
Lokids
addikt
-
gepelek
csendes tag
-
martonx
veterán
-
topjoyy
tag
-
Con Troll
senior tag
-
Aureal
őstag
Igen, meglehetősen egyszerű volt megtalálni:
1. megnyitottam az oldalt, majd utána a Developer Tools-t a Ctrl+Shift+I megnyomásával, ott Network fül
2. gépeltem a mezőbe, és láthatóan nem volt hálózati forgalom, így egyértelművé vált, hogy a teljes lista lejön, nem a szervert használja a találatok szűkítéséhez
3. mivel az ilyen típusú adatokat általában külön fájlban szokták letölteni, ezért első tippre bekapcsoltam az XHR-re szűrést, és újratöltöttem az oldalt
4. megjelent a listában a productselector/ sor, így itt véget ért a keresgélés, nem kellett a sokkalta hosszabb JS listát végigbogarászniAkkor megnyugodtam hogy én is hasonlókban szoktam kurkászni, azaz nem csinálok egetverő hülyeséget.

Csak épp én nem tudtam mit keressek, végig szoktam nyálazni a betöltött scriptek stb. fájljait hátha valami hasonló feltűnőn megakadok, de most nem jött össze!
Köszi!
-
Aureal
őstag
-
PumpkinSeed
addikt
Nem a feltétel száll el, hanem az értékadás. Az pedig azért, mert a kétdimenziós tömbként kezelt freehours feltöltése nem történt meg megfelelően. Ezért a freehours[ i ][j]-ből a freehours[ i ] már undefined értékre fut, így az undefined[j] utasítás próbál meg lefutni, nyilván sikertelenül.
Ja igen tényleg, csak először a feltételben mutatta a hibát. De beleteszem push()-al és megy. Thanx.
-
pckownz
őstag
HTML-ben és DOM-ban csak zavaró lehet (ugyanis engedi a szabvány), de CSS szintjén nem kezdődhet számmal egy class neve:
In CSS1, a class name could start with a digit (".55ft"), unless it was a dimension (".55in"). In CSS2, such classes are parsed as unknown dimensions (to allow for future additions of new units). To make ".55ft" a valid class, CSS2 requires the first digit to be escaped (".\35 5ft")
De például ékezetes karakterrel igen, így néz ki a nyelvtan és a lexer releváns része:
class
: '.' IDENT
;ident -?{nmstart}{nmchar}*
nmstart [_a-z]|{nonascii}|{escape}
nonascii [\240-\377]
escape {unicode}|\\[^\r\n\f0-9a-f]
unicode \\{h}{1,6}(\r\n|[ \t\r\n\f])?Ha itt a számot csak sorszámként használnád fel, és nem tartozna hozzá konkrét CSS szabály, akkor ennek a tárolására egy data-xxx attribútum szerencsésebb megoldás lenne (és erre még CSS szabályt/szelektort is lehetne írni).
Atterek a data attr -ra, koszonom

-
pckownz
őstag
jQuery('.item.col-md-4.0').hide();
Kísérletezéskor kapcsold be Ctrl+Shift+J-vel a JS konzolt a böngészőben, hogy lásd a hibaüzeneteket. Így azonnal kibukott volna, hogy nem állítottad be JSFiddle-ben, hogy jQuery-t használnál. Ezt a JavaScript panel jobb felső sarkában a fogaskerékre kattintva tudod megtenni.
Bekapcsolva, de csak
Uncaught ReferenceError: jQuery is not defined -
don_peter
senior tag
Köszönöm, ezeket a függvényeket használom az utf-8 karakterek miatt, de a példád még is segített.
Észre vettem, hogy használom ezt: unescape() is ami bekevert
Köszi a segítséget.. -
tzimash
őstag
var eredmeny=[];
Előre azt mondtad, hogy az eredmény 12 elemű tömb lesz, de nem írtál bele annyi elemet, így a maradék undefined értéket vett fel. A new Array() helyett inkább a sokkal tömörebb [] szintaktikát használd.
for(i=0;i<12;i++)
{
document.getElementById("tomb").innerHTML = tomb;
}Itt a for ciklusnak semmi értelme sincsen.
Szűrésre és egyéb tömbbel kapcsolatos műveletekre érdemes használni a JS filter/reduce/map feature-jeit, ha lehetőséged van rá, mert sokkal tömörebb és átláthatóbb kódot eredményez:
var eredmeny = tomb.filter(function(e) {
return e % 3 === 0;
});Csak akkor használd a == és != operátorokat, ha szükséges a konverzió, minden egyéb esetben a === és !== operátorokat használd.
Legyél konzekvens a központozásban, tedd ki mindig a space-eket az operátorok elé és mögé, valamint a sorok elejére a megfelelő behúzást.
for(n=0;n<12;n++)
if(tomb[n]%3==0)
{
eredmeny[j]=tomb[n];
j++;
}
document.getElementById("three").innerHTML = eredmeny;
}És kerüld az ilyen eseteket, mert első ránézésre azt hinné az ember, hogy az innerHTML módosítása is a for cikluson belül történik, ezért tedd ki a kapcsos zárójeleket:
for (n=0; n < 12; n++)
{
if (tomb[n] % 3 === 0)
{
eredmeny[j] = tomb[n];
j++;
}
}
document.getElementById("three").innerHTML = eredmeny;Vagy a JavaScript szokások szerint írva:
for (n=0; n < 12; n++) {
if (tomb[n] % 3 === 0) {
eredmeny[j] = tomb[n];
j++;
}
}
document.getElementById("three").innerHTML = eredmeny;Köszi a tanácsokat, megpróbálok javítani a kódon.
Ott maradt a 12... nesze neked copy-paste
-
PumpkinSeed
addikt
Ja igen, ma ilyeneket nézek be, viszont a reguláris kifejezésemmel lehet valami probléma, mert true-t ad arra is ha < van a szövegben.
-
inf3rno
nagyúr
Virtualizált Androiddal nem foglalkoztam még. Az évek során Windows hostokról (XP, Vista, 7, 8.1) adtam már át Linux (Ubuntu, Xubuntu, CentOS, Manjaro) és Windows (XP, 7, 8.1, 10, 2012 Server) guesteknek USB-s perifériákat (webkamera, fényképezőgép, tuner, kriptotoken).
A periféria sikeres átadásának természetesen feltétele, hogy a guest rendszerben legyen hozzá driver, az Android guest itt nagyon hamar el tud bukni, mert simán elképzelhető, hogy a kernelbe nincsen belefordítva a szükséges driver (ezen csak saját kernel fordításával tudsz továbblépni). Az ellenben nem feltétel, hogy a hoston legyen hozzá a VMware úgy is át tudja adni (például egy őskövület fényképezőgépről, amelyhez nincsen 32 bites XP-nél frissebb driver, virtualizált Linuxon keresztül tudom letölteni a képeket).
De eddig WinJS-ről volt szó, annak mi köze az Androidhoz?
Egyébként most nem USB perifériáról van szó, hanem integrált bluetooth-ról. A régi verziós bt megy is, csak a 4.0 nem, legalábbis nem ismeri fel az eszközt. Windows-ban már sikerült párosítani, de az is csak sokadikra ment, úgyhogy nem tudom, hogy a kapcsolódással van e a gond, vagy a bt smart nem működik. Valószínűbb, hogy inkább az utóbbi, és vagy a vmware vagy az android-x86 nem támogatja a bt smart-ot. Próbáltam release logokban utánakeresni, de google semmit nem dobott róla, a vmware fórum regisztrációnál meg csak a személyi számomat nem kérdezik meg...
-
inf3rno
nagyúr
Virtualizált Androiddal nem foglalkoztam még. Az évek során Windows hostokról (XP, Vista, 7, 8.1) adtam már át Linux (Ubuntu, Xubuntu, CentOS, Manjaro) és Windows (XP, 7, 8.1, 10, 2012 Server) guesteknek USB-s perifériákat (webkamera, fényképezőgép, tuner, kriptotoken).
A periféria sikeres átadásának természetesen feltétele, hogy a guest rendszerben legyen hozzá driver, az Android guest itt nagyon hamar el tud bukni, mert simán elképzelhető, hogy a kernelbe nincsen belefordítva a szükséges driver (ezen csak saját kernel fordításával tudsz továbblépni). Az ellenben nem feltétel, hogy a hoston legyen hozzá a VMware úgy is át tudja adni (például egy őskövület fényképezőgépről, amelyhez nincsen 32 bites XP-nél frissebb driver, virtualizált Linuxon keresztül tudom letölteni a képeket).
De eddig WinJS-ről volt szó, annak mi köze az Androidhoz?
Semmi. Az a problémám, hogy windows-ra nincs megírva a program, amit használni akarok, csak androidra. Ha sikerülne is GATT-ról adatot nyerni a BT smart eszközről, akkor is vannak olyan funkciók, amiket valszeg nem tudnék használni (pl beállítások), mert nem tudom, hogy hogyan implementáljam őket, úgyhogy egyszerűbb lett volna felszórni a laptopomra egy emulált androidot, amin telepíthetem a szoftvert, aztán megnézhetem, hogy tényleg jól működik e a kütyü.
Megpróbáltam virtualbox-al is, azzal a telepítő képernyőig jutottam, ott viszont úgy tűnt, hogy a virtualbox nem érzékeli a billentyűzetet, úgyhogy nem tudtam tovább lépni. Próbáltam beállítani, de nem kapta el a keystroke-okat a beállításnál sem. Utána megpróbáltam újraindítani, akkor meg valami értelmezhetetlen hibaüzenetet szórt. Ezek után tényleg jobb a vmware. Az is bugos, de legalább nem ennyire durván...
Majd kölcsönkérek egy bt smart-os mobilt, aztán kipróbálom azzal, addig meg megnézem, hogy ez a WinJs GATT hogy szuperál, ha már így belejöttem.
-
inf3rno
nagyúr
Rendelsz Kínából USB-s BT4.0 adaptert (bár itthon sem sokkal drágább), azután VMware Playerben telepítesz Windows 8-at, és ott át tudod adni* neki az USB-s eszközt. Ha van elegendő mennyiségű memóriád és megfelelő processzorod, akkor a legkényelmesebb VM alól végignyomni a teljes fejlesztést.
* elvileg ilyet a VirtualBox is tud, csak kölcsönösen nem kedveljük egymást, így olyan messzire kerülöm, amilyen messze lehet
![;]](//cdn.rios.hu/dl/s/v1.gif)
Közben felszórtam a laptopomra vmware-t player-t. Úgy gondoltam, hogy a rövidebb utat választom, és felteszek rá egy androidot, ahhoz vannak programok, és úgy nem kell GATT-al bohóckodni. Feltettem egy android-x86-4.4-rc2-t elsőnek, hát befagyott az induló képernyőnél, azt mondják ez ismert hiba 4.2 óta. Feltettem így egy 4.0-t, azon viszont nincs net, és a bluetooth-nál sem látom a bt smart eszközömet, csak a régi bt-os mobilomat. Biztos, hogy lehetséges vmware-el bluetooth smart-ot megosztani az emulált rendszerrel?
-
inf3rno
nagyúr
Rendelsz Kínából USB-s BT4.0 adaptert (bár itthon sem sokkal drágább), azután VMware Playerben telepítesz Windows 8-at, és ott át tudod adni* neki az USB-s eszközt. Ha van elegendő mennyiségű memóriád és megfelelő processzorod, akkor a legkényelmesebb VM alól végignyomni a teljes fejlesztést.
* elvileg ilyet a VirtualBox is tud, csak kölcsönösen nem kedveljük egymást, így olyan messzire kerülöm, amilyen messze lehet
![;]](//cdn.rios.hu/dl/s/v1.gif)
Fura, pedig sok helyről hallottam, hogy a VirtualBox a tuti.
-
inf3rno
nagyúr
Az SSD valószínűleg elfedi a memóriahiány miatti vergődést (én 4 GB memória mellett kizárólag HDD-n próbáltam). 4 GB-tal sokkal lassabban indul a VS2013, mint egy VS2010, sokkal lassabban tölt be 30-40 projektes solutionöket, és vannak olyan editorok, amelyek használatához a vergődés miatt ekkor fokozott türelem kell (a XAML például ilyen), szóval a lassúság érzete lehet projekttípustól függő is. Én ezért aztán reflexből 8 GB memóriát adtam legutoljára a VM-nek, amikor ki kellett deríteni egy OS specifikus nyűgöt, és szükség volt adott platformon ehhez fejlesztői környezetre

A TFS-es rész innen vettem, VS2015-ben szigorítottak rajta (bár ez engem az otthoni gépen nem fog érinteni, nem kedvelem a beépülő verziókezelőket, ha SVN és Git repóid vannak, akkor funkcionalitásban és megbízhatóságban a SmartSVN és SmartGit közelében sincsen egyik sem).
Ha így van, akkor gondolom egy idő után meg is eheti az SSD-t.
-
inf3rno
nagyúr
A VS2010 volt az utolsó Visual Studio, amelyik még beérte 4 GB memóriával. Ezután alaposan hozzányúltak az IDE alapjaihoz, ami azt eredményezte, hogy 8 GB alatt kínszenvedés használni, de ha van ennyi memóriád, akkor a VS2012 és utódai érezhetően sokkal-sokkal gyorsabbak ugyanazon a gépen, mint a VS2010.
A Community Edition pedig lényegében egy Professionalnek felel meg némi tudásbeli (nincsen TFS, CodeLens) és némi licencbeli (egyéni fejlesztők és legfeljebb 5 fős cégek használhatják) korlátozással.
Fura, ha azt nézem, hogy nálam a WebStorm 250-ről indul, és onnan megy fel projekt méret függően. Két megnyitott projektnél is csak 400Mb-ot eszik most. Ehhez képest a 8Gb azért nagyon az alja. Nincs is annyi a gépben, mert eddig nem kellett.

-
PumpkinSeed
addikt
Az SSD valószínűleg elfedi a memóriahiány miatti vergődést (én 4 GB memória mellett kizárólag HDD-n próbáltam). 4 GB-tal sokkal lassabban indul a VS2013, mint egy VS2010, sokkal lassabban tölt be 30-40 projektes solutionöket, és vannak olyan editorok, amelyek használatához a vergődés miatt ekkor fokozott türelem kell (a XAML például ilyen), szóval a lassúság érzete lehet projekttípustól függő is. Én ezért aztán reflexből 8 GB memóriát adtam legutoljára a VM-nek, amikor ki kellett deríteni egy OS specifikus nyűgöt, és szükség volt adott platformon ehhez fejlesztői környezetre

A TFS-es rész innen vettem, VS2015-ben szigorítottak rajta (bár ez engem az otthoni gépen nem fog érinteni, nem kedvelem a beépülő verziókezelőket, ha SVN és Git repóid vannak, akkor funkcionalitásban és megbízhatóságban a SmartSVN és SmartGit közelében sincsen egyik sem).
Nekem SSD van alatta, NodeJS-el próbáltam és pár letöltött modul volt még amit egyszerre kellett berántania indításkor, de ezen kívül más nem ment alatta. Nem tudom miért, de nagyon zabálta a memóriát. Így maradt a Sublime vagy NetBeans. Valaki használta már a GitHub Atom-ját? Még azt próbálgatom most, de tudásilag szinte a Sublime buta szintjén van. Nem tudom, hogy bővítsek-e memóriát, ugyanis itt van az SSD.
-
martonx
veterán
Az SSD valószínűleg elfedi a memóriahiány miatti vergődést (én 4 GB memória mellett kizárólag HDD-n próbáltam). 4 GB-tal sokkal lassabban indul a VS2013, mint egy VS2010, sokkal lassabban tölt be 30-40 projektes solutionöket, és vannak olyan editorok, amelyek használatához a vergődés miatt ekkor fokozott türelem kell (a XAML például ilyen), szóval a lassúság érzete lehet projekttípustól függő is. Én ezért aztán reflexből 8 GB memóriát adtam legutoljára a VM-nek, amikor ki kellett deríteni egy OS specifikus nyűgöt, és szükség volt adott platformon ehhez fejlesztői környezetre

A TFS-es rész innen vettem, VS2015-ben szigorítottak rajta (bár ez engem az otthoni gépen nem fog érinteni, nem kedvelem a beépülő verziókezelőket, ha SVN és Git repóid vannak, akkor funkcionalitásban és megbízhatóságban a SmartSVN és SmartGit közelében sincsen egyik sem).
Na mondjuk én csak "kisebb" 10-15 projektes solution-öket futtatok maszekban a gyenge gépemen, azok elég szépen muzsikálnak. Ja, és van egy 42 projektes Nopcommerce is, na azt tényleg csak mazochistáknak érdemes elindítani azon a gépen. Kizárólag webfejlesztésre használom, így a Xaml editort még sosem próbáltam, a js, cs, cshtml editorok szvsz nem foglalnak sok erőforrást.
Illetve vannak komoly erőforrást igénylő pluginek, mint pl. a Resharper, na azt is elefelejthetem a 4GB-s gépen.A TFS részt megnéztem, igaziból pont az alap TFS verziókezelő funkcionalitást a VS2015 Community is támogatja, amiket nem támogat, azok a magasabb szintű TFS funkciók.
Fő melóban Github-ot használunk, szóval azzal is van tapasztalatom bőven, annak is megvannak a maga előnyei, hátrányai.
-
martonx
veterán
A VS2010 volt az utolsó Visual Studio, amelyik még beérte 4 GB memóriával. Ezután alaposan hozzányúltak az IDE alapjaihoz, ami azt eredményezte, hogy 8 GB alatt kínszenvedés használni, de ha van ennyi memóriád, akkor a VS2012 és utódai érezhetően sokkal-sokkal gyorsabbak ugyanazon a gépen, mint a VS2010.
A Community Edition pedig lényegében egy Professionalnek felel meg némi tudásbeli (nincsen TFS, CodeLens) és némi licencbeli (egyéni fejlesztők és legfeljebb 5 fős cégek használhatják) korlátozással.
Várjatok, én 4Gb-s gépen használom a VS2013 Community-t, és tűrhetően mozog (pontosabban 3 gépen, egy 16Gb-s I7-esen, egy 8Gb-s A10-esen, és egy 4Gb-s fing processzorú notebook-on). Ami viszont rengeteget számít alatta az az SSD tapasztalataim szerint.
A nincsen TFS-t furcsálom, mert minden maszek projektemet TFS-en tartok.
-
Jim-Y
veterán
adott esetben elég problémás bugról van szó egy éles projektnél, akkor azt nem jó ellökdösni, hogy majd megcsinálom, mert akkor elfelejtődhet
Nem, ilyen nem fordul elő sosem, mert ugyebár mindenre van egyXKCDtestcase![;]](//cdn.rios.hu/dl/s/v1.gif)
És erről jutott eszembe: valaki belemélyedt már jobban a kliensoldali automatizált tesztelésbe? Vajon mekkora beletanulási ideje lehet egy Jasmine+PhantomJS párosnak? A többi rész után szeretném a webes UI tesztelését is automatizálni, a kollégákkal ellentétben a Jenkins mindig ráér foglalkozni vele, és alaposan dolgozik

Szia, mi -sajnos- nem hasznalunk PhantomJS-t, pedig en szemely szerint egy headless approach-nak jobban orulnek, mint amit most a Karma nyujt, hogy megnyit egy bongeszo ablakot teljesen feleslegesen :/ Na mindegy, a lenyeg, hogy szerintem egy Jasmine elsajatitas nem tart tovabb par oranal. Igazabol semmi extra nincs benne, kell szerezni egy Jasmine cheat-sheet-et es akkor rogton hatekony munkat lehet vegezni benne. E2E tesztekben nincs nagy tapasztalatom, bar szerintem jo lenne ha lenne ra lehetosegunk, egy gondot latok ezekkel a tesztekkel, hogy
ad1: kell hozza egy habitus, a projekt team reszerol, hogy mindenkinek alap legyen, hogy a task egyben azt is tartalmazza, hogy teszteket kell csinalni
ad2: hogy ki legyen kenyszeritve a teszt ellenorzes-iras, peldaul git/svn precommit hookokkal vagy hasonlokkal.Nalunk most azzal van szivas, hogy hogy lehetne normalisan mockolni a tesztekben a require dependenciakat. Es nem is az elsoszamuakat, mert azzal nincs gond, hanem ha en fuggok egy A modultol, ami fugg egy B modultol, akkor hogy tudom a tesztben mockolni a B modult. Erre azert van szukseg, mert sajnos az app az elejetol kezdve rosszul lett felepitve es nem alakalmas a tesztelesre. Mert pl a B modul egybol bootstrapeli az alkalmazast ami nyilvan nem jo
Ezert kene mockolni. -
martonx
veterán
adott esetben elég problémás bugról van szó egy éles projektnél, akkor azt nem jó ellökdösni, hogy majd megcsinálom, mert akkor elfelejtődhet
Nem, ilyen nem fordul elő sosem, mert ugyebár mindenre van egyXKCDtestcase![;]](//cdn.rios.hu/dl/s/v1.gif)
És erről jutott eszembe: valaki belemélyedt már jobban a kliensoldali automatizált tesztelésbe? Vajon mekkora beletanulási ideje lehet egy Jasmine+PhantomJS párosnak? A többi rész után szeretném a webes UI tesztelését is automatizálni, a kollégákkal ellentétben a Jenkins mindig ráér foglalkozni vele, és alaposan dolgozik

Beletanulási ideje kb. nulla (na jó, egy nap mondjuk).
Más kérdés, hogy akkor már gondolom van deploy automatizmusotok, CI rendszeretek, amibe beilleszteni a cuccot, nem feltétlenül tirivális.Egyébként nem vagyok nagy híve a kliens oldali automatizált tesztelésnek. Ha csak egy class, vagy id megváltozik, máris törnek a tesztek. Ilyen szerver oldalon sokkal ritkább, és jellemzően olyankor jogosan törnek el a tesztek. Ráadásul a kliens oldali logikák általában nagyságrendekkel egyszerűbbek, mint a szerver oldaliak.
Szóval nálunk ha piros a kliens oldali teszt, akkor 80%, hogy a teszt hibás. Ráadásul olyat tesztelni, hogy ha A gombot megnyomom, akkor átmegyek a B oldalra, hááát ezekben azért túl nagy hibák amúgy se tudnak előjönni, s akkor is inkább szerver oldali hiba okozza. -
Karma
félisten
-
nova001
senior tag
A megoldás egyszerű: felülírod az oldalon a beépített XMLHttpRequest objektumot, legalábbis annak a send() metódusát. Itt van rá egy példa, de léteznek XHR mockup könyvtárak is, ahogyan az általad is említett jasmine-ajax is alkalmas lehet erre.
De ha ennyire offline kell működnie az oldalnak, akkor miért a jquery.com-ról töltöd be a jQuery-t, és nem helyi fájlból?
a kérdésed jó azóta javitottam azt is

na most nekem ez totál kinai
tudnál segiteni mit kéne átirnom a sendhez ? -
Sk8erPeter
nagyúr
Ha nullával kezdesz egy kizárólag számjegyekből álló numeric literalt, akkor az JS-ben (és egyéb C-szerű szintaktikából eredeztetett nyelvekben) azt jelenti, hogy nyolcas számrendszerben adtad meg az értéket. Mivel nyolcas számrendszer, így abban csak a 0-7 számjegyek érvényesek, a 9 nem.
27= 0x1b = 033
Szóval szépérzéktől vezéreltetve ne írd ki a kezdő nullákat sosem, mert csúnya meglepetések érhetnek miatta.
month: Integer value representing the month, beginning with 0 for January to 11 for December. [link]
Kíváncsi lennék, ki volt az az idióta, aki ezt ilyenre kitalálta, és miért tette. De igazából az egész Date objektum egy állatorvosi ló a mit ne típusú JavaScript programozói hibák szemléletes bemutatására."»» month: Integer value representing the month, beginning with 0 for January to 11 for December. [link]
Kíváncsi lennék, ki volt az az idióta, aki ezt ilyenre kitalálta, és miért tette. De igazából az egész Date objektum egy állatorvosi ló a mit ne típusú JavaScript programozói hibák szemléletes bemutatására."
Ó, hogy ezzel milyen messzemenőkig egyetértek.
Pontosan ugyanez jutott eszembe a téma kapcsán, csak nem akartam megint fikázódni.
Ott kezdődik, hogy dátumoknál teljesen értelmetlen ez a 0-tól való számozás, amikor konkrét hónapokról, meg napokról van szó, de egyéb gondok is vannak.(#4612) Jim-Y:
Ez jópofa.
-
Speeedfire
félisten
Ha dátumról van szó szövegesen, akkor mindig az ISO 8601 formátummal próbálkozzál, a legkevesebb nyűg valószínűleg azzal lesz. ECMAScript 3-ban nem volt szabványosítva a mező formátuma, ECMAScript 5-ben egyértelműen szerepel az ISO 8601 támogatás szükségessége. A legtöbb böngésző történelmi okok miatt az MDN-en szereplő RFC2822 formátumot is támogatja, de ezenkívül bármi más esetében már érhet meglepetés.
Köszi!

-
Agony
aktív tag
Hát.. én efölött a rém gyenge próbálkozás fölött guggolok már jó pár órája, hogy rájöjjek, hogy lehet a jelszavas védelmet bekapcsolni az előző hozzászólásomban linkelt javascript alapú tesztben.
Pedig benne van, csak a 0 js tudás, kicsit kevés hozzá.
De azért köszönöm szépen a választ!
-
martonx
veterán
Inkább azt vegyük észre, hogy 2 év óta egy commit sincs ehhez a js lib-hez a github-on, szóval ez egy halott js lib. Ettől függetlenül persze nyilván egyet is ért velem a lib fejlesztője, elvégre a tényekkel nehéz vitatkozni

-
dqdb
nagyúr
For ciklusban az általad használt módon nem illik az innerHTML-hez hozzáadni tartalmat, ugyanis ilyenkor minden alkalommal a böngésző változást észlelve újrarendereli az oldalt. Egy változóba gyűjtsd össze a teljes változást, és egyszer nyúlj hozzá az innerHTML-hez. Szintén nem illik for ciklusban a DOM-ból lekérdezni állandóan egy objektumot, amikor azt a ciklus előtt cache-elhetted volna egy változóba.
function f()
{
var min = parseInt(document.getElementById("min").value);
var max = parseInt(document.getElementById("max").value);
var s = "";
var paddingLength = -max.length;
var paddingString = new Array(-paddingLength).join("0");
for (; min <= max; min++)
s += (paddingString + min).slice(paddingLength) + " | ";
document.getElementById("box").innerHTML = s;
}Most nézem, hogy a max.length az valójában max.toString().length akart lenni ...
-
honda 1993
senior tag
Javascript-el meg lehet irni hozza a tobbit? (tehat hogy ne csak ott legyenn az oldalamon, hanem mukdjon is.)
Vagy ezt csak php val lehet?
Meg lehet JS-ben is írni, ha a szerveren NodeJS fut, és te abban valósítod meg a rendszeredet, de te valószínűleg nem erre gondoltál. A megoldás lehet PHP, Ruby, Python, ASP.NET vagy bármilyen szerveroldali megoldás, az a lényeg, hogy ehhez nem elég a kliensre letöltődő HTML + JS, hanem kell egy kiszolgáló és rajta futó logika.Nem tudom hogy a"kijelentkezest hogy lehet megirni. Vagy ez csak akkor fog latszani ha javascriptel vagy phpval megirom hozza a tobbit?
Session alapú megoldás kell neked, esetleg REST implementációnál ticketek használata. De úgy érzem, mindkettőtől még nagyon messze állsz, előbb a kliensoldali JS-tel kellene képbe kerülnöd, és látni, mi a kliens feladata, mi a szerver feladata, mi fut a kliensen, mi fut a szerveren, a kettő hogyan kommunikál.Sk8erPeter: csak 15 perc, mert egy másik feladványra elkészült előtte egy hasonló stílusú Ascii85 megoldásom, és azt donornak felhasználtam. Jó móka volt az egész, és úgy éreztem, a végeredmény kellően sokkoló lett első pillantásra ahhoz, hogy egy uglifieren ne küldjem még keresztül a kódot

Koszi a valaszt.
A xamp telepitve van, es regebben mar irtam egy amolyan egysoros php kodot is amit a sikerult lefuttatnom azutan hogy a bongeszobe beirtam hogy "localhost".
De aztan valamiert abbahagytam es most a javascriptet tanulgatom (mintha ez picit egyszerubb lenne)Es majd csak kesobb fogok hozza a phphez.
Vegul is meg csak 3 honap telt el azota hogy a HTML ES A CSS nyelveket elkezdtem tanulni.
-
CSorBA
őstag
Nagyon jó móka, és kiválóan alkalmas a kevés szabadidőd elszúrására
Röviden arról van szó, hogy valaki kitalál egy feladványt, megírja hozzá a unit testeket, és neked olyan kódot kell írni, ami átmegy a teszteken (természetesen a teszteket, valamint mások megoldásait csak azután ismered meg, miután megoldottad a feladatot).Érdemes megnézni mások megoldásait, lehet belőlük tanulni. És persze hirtelen ötlettől vezérelve, pusztán szórakozásból lehet alkotni tömör, de lassú és erőforrás-pocsékoló, tökéletesen karbantarthatatlan kódot, mint a for ciklustól mentes Base64 megoldásom

Ooóóó, ez tök jó oldal. Tök sokat lehet abból tanulni, hogy látod más hogy csinálta meg. Ez tetszik

-
Jim-Y
veterán
-
Lacces
őstag
Nem asszociatív tömböt hozol létre, hanem egy objektumot propertykkel, és nem a space-szel és ékezetes karakterekkel van a probléma, ugyanis JS-ben egy property neve megkötések nélkül lehet bármilyen szám vagy szöveg, hanem azzal, hogy elfelejted a kategória szintjét inicializálni.
Ha 10-20 elemnél többet küldesz le a szerverről, akkor azt érdemes kategória-alkategória szerint rendezve megtenni, ekkor a legutoljára használt kategória és alkategória cache-elésével sokkal gyorsabban fel tudod építeni a kétszintű fát.
Jim-Y - neked is köszi.
Lehet megy ez szerver oldalon ez a rendezés. 200-as elem listánál nem látom már olyan gyorsnak a javascriptet.
Új hozzászólás Aktív témák
-
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 Tabletek, E-bookok Nyomtatók, szkennerek 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
- Új/Újszerű Apple Macbook Air 15,3" M4 /24GB/1TB - Ezüst - MAGYAR - 15 Ciklus - 2,5 év garancia
- HIBÁTLAN iPhone 14 Pro Max 1TB Silver -2 ÉV GARANCIA - Kártyafüggetlen, MS5258
- Gamer egerek és billentyűzetek kitűnő árakon!
- GYÖNYÖRŰ iPhone 14 128GB Midnight -2 ÉV GARANCIA - Kártyafüggetlen, MS5381
- SzoftverPremium.hu
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



(Értve ezalatt a


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


