TCH (statz) | #1, Főfasz (10466) |
6238 | #3583 | ^ | Idézet | Mon, 31 Aug 2015 22:58:04 +02 |
188.36.*.* | *.catv.pool.telekom.hu |
Ha már nekem is csinálnom kell valamit, akkor már tök mindegy, akkor annyi erővel be is rakhatok egy új linket, ami véletlen oldalra ugraszt, nem? :) És akkor megosztanék veletek egy szívmelengető történetet, hogy hogy égtem be máma kegyetlenül a Classic Operával, de pont nem azért, mert szar lett volna, hanem pont azért, mert jó volt! Egyedül ő volt jó! A tapasztaltabbak már sejthetik is miért... Szóval fejlesztgetek most egy mexikói srácnak (Roberto kuzinjának) egy portált. Mivel sokan fogják használni, ezért nem akartam fossá terhelni a szervert, a logout kivételével minden művelet AJAX-on keresztül történik (azaz a kliensoldali JS meghív egy bizonyos URL-t és visszakap valamit) és a szerveroldalon sincs valami extrém keretrendszer, egy minimálinterfész van, ami csak annyit dönt el, hogy mit töltsön be (module/action), ami kb. kimerül egy require $module.'/'.$action.'.php'; meghívásban és aztán az apró PHP fájlok visszaköpik az eredményt. Na most, az eredmény értelemszerűen tartalmazhat JS-t is, hiszen direkt azért, hogy a kliensoldal is gyors legyen, nem töltögetek be JS-t habókra; ami visszajön az AJAX-ból, azt végrehajtjuk. És itt jön a képbe, hogy miért is a Classic Opera a világ legjobb Böngészője (nagy B-vel Bazmeg) még mindig és miért űberszar az összes többi és miért volt nagyon nagy hiba részemről, hogy az Operára támaszkodtam. Amikor a login prompt visszajön a túloldalról, akkor jön vele egy login() funkció is, amit a login prompt button elementje hívott meg onclickkel. <button onclick="login()">Login</button>És ez Operában gyönyörűen működött. Aztán ma demóztam volna az oldalt és a srácoknak nem ment egyetlen böngészőben sem. (Classic Operájuk nincsen.) Kipróbáltam. (Classic Operával.) Nekem ment. Nem értettük. Aztán kipróbáltam IceWeasellel. És nekem se ment. Midorival sem. Otterrel sem. Csak Classic Operában ment. Lekapartam az arcomnak azt a részét, ami nem égett le. Most este a "míting" után nekiálltam debuggolni és ordenáré csomókban hullott a hajam, mint egy chernobyli lakosnak. Hosszas szopások után két dolog derült ki. Operában a document.head.appendChild(script) működött, a többiben nem. A többinek eval(script.innerHTML) kellett, de erre még viszonylag gyorsan rájöttem. (Operában egyébként mindkét mód működik.) Amivel viszont idáig szoptam az az, hogy Operában miután lefutott az eval() (vagy az appendChild()), a gombra bökve lefutott a login(), míg a többiben nem. Ugyanakkor, ha az AJAX rutin callback-jébe belegányoltam, hogy visszatéréskor, eval() után rögtön hívja meg, akkor ment mindenütt! Már majdnem feladtam, amikor kattant valami az agyam (helyének) mélyén, és kipróbáltam, hogy mi van, ha a gombról leszedem a rádrótozott onclicket és a visszatérő scriptben belegányolok egy olyat, hogy var btn = document.getElementById('login_prompt').getElementsByTagName('button'); btn[0].onclick = function () { login(); };Működött. Sírok bazmeg. Ezt miért. De persze tudom, hogy miért. A büdös bugróka (jégmenyét) meg a többi szarzabáló fosrakás visszatéréskor, miután hozzáadtam a div-hez a tartalmat, végigfuttatta az értelmezőt és mivel akkor még a login nem létezett, így egyszerűen leszedte róla! Az Opera ilyen világi hívságokkal nem törődött, jó helyen van az ott, majd ha nem létezik amikor meghívjuk, akkor nem futtatjuk le, ilyen kurwa egyszerű. És milyen kurwa igaz. Megint ki az anyám szaros picsája kérte ezt a fasságot. Ki. Megint ennek mi értelme van. Látjátok, ide vezet, ha túl "okosak" lesznek a szájbabaszott szoftverek, hogy felülbírálják az embert és aztán majd jön a katasztrófa. Most csak egy login prompt nem működött. Legközelebb a lélegeztetőgép nem fog. Legközelebb a légzsák szoftvere fog úgy dönteni, hogy nem volt ez akkora csattanás, hát kíméljük meg a júzert attól, hogy vissza kelljen tuszkolnia azt a bazi nagy csomagot. Legközelebb az atomerőmű vészleállítója fog úgy dönteni, hogy nincs még olyan meleg, hát kíméljük meg az embereket a többhetes újraindítás nyűgjeitől. Úgyhogy bassza meg az összes rohadt szar brózer és csakazértis Classic Opera forever. (És itt világlik ki, hogy az igazán expertek nem véletlenül sírtak a Presto után is. Lehet, hogy lassabb, mint a WebKit, de ésszerűbb is.) Természetesen ebben benne volt megint az én hülyeségem is, hogy csak azért, mert fejlesztés alatt áll, nem néztem meg más böngészőben, holott meg kéne, de ez nem mentesíti a hülye brózermotorokat ezalól az ostoba önhatalmaskodás vétke alól. Kurwa anyját az összesnek, ott basszák meg magukat, ahol vannak. Sz*rk: És természetesen MINDEN gombra ugyanez vonatkozik. Írhatom át az egészet. Gyűlölöm a webet. Sz*rk hajnali kettő: Miután végigszoptam az este után a fél éjszakát is és kitéptem az összes hajam, hogy miért nem látszanak a függvényeim, amikor hívom őket, holott a parser végigfutott rajtuk, már ott tartottam, hogy nekiállok JS parsert írni, ami kiszedegeti a függvények neveit, argumentumait és tartalmukat, majd a function segítségével hozzábassza a window-hoz. Szerencsémre ismét kattant valami az agyamnak nevezett szarkupacban és ehelyett a fasság helyett, inkább fogtam és az összes dinamikusan töltött függvényt átírtam úgy, hogy function kecske() { alert('kecske'); }helyett window.kecske = function() { alert('kecske'); }legyen. Így bármely scope-ból elérhető. És minden működik, nem kell mindenütt átírni hivatkozást, betöltést, csak erre kell ügyelni, hogy a dinamikusan kiköpött JS-eket a window-hoz kell hozzábaszni. Nos, csak egy dolgot tudok mondani: A büdös kurwa anyját a jávaszkriptnek! Én kérek elnézést a ciszta és a dzsuva nevében is. Ezt egyszerűen nem lehet alul felülmúlni. Kész lehetetlenség. Ehhez a két cég külön-külön kevés, ehhez a foshoz ketten kellettek...és tényleg annyira szar, mint amennyire a ciszta meg a dzsuva együtt. |
djpety alias "Pety" | #6, Lófasz (953) |
458 | #3584 | ^ | Idézet | Tue, 01 Sep 2015 02:18:51 +02 |
81.182.*.* | *.dsl.pool.telekom.hu |
Ezt úgy tudom by design ilyen. Tehát XHR-el behívott tartalomból a böngésző kiveszi a scripteket, és nem futnak le. A JSONP-t ismered? Annak a technikájához hasonlóan elég jól lehet dolgozni, behúzod a script menet közben, ami inicializálja azt amit kell betöltődése után. Meg persze API-khoz is hasznos, ezzel CORS problémája is sok esetben megoldódik. |
kemi (statz) | #2, Főfasz (2970) |
183 | #3585 | ^ | Idézet | Tue, 01 Sep 2015 06:55:29 +02 |
84.236.*.* | *.pool.digikabel.hu |
TCH, adnál elérést az oscomp adatbázisához? Csak hogy ne kelljen egyesével levadászni az összes SNES játékot, csak select filename from games where platform = 'SNES'. |
kemi (statz) | #2, Főfasz (2970) |
42 | #3586 | ^ | Idézet | Tue, 01 Sep 2015 08:33:20 +02 |
37.76.*.* | *.nat.pool.telekom.hu |
8K forintra sarcolták meg az EverDrive-ot. |
TCH (statz) | #1, Főfasz (10466) |
2315 | #3587 | ^ | Idézet | Tue, 01 Sep 2015 11:08:39 +02 |
188.36.*.* | *.catv.pool.telekom.hu |
Az Opera nem tette. És ő tette jól. Ez egy semmi értelme sincsen "feature". Gondold csak végig, a JS a kliensoldalon nem tud kárt okozni, a szerver meg ha olyan JS-t küld, ami a szerveren kárt csinál, akkor az a szerver baja. Tehát semmi értelme az AJAX response-ban érkező JS-t kinyiffantani. Ha ez by design ilyen, akkor ez broken by design. Dehát mit várunk a JS-től, az egész nyelv broken by design. Felületesen, de itt nincsen script src, az összes érkező JS inline módon van beágyazva a HTML response-ba, (CSS dettó) ugyanis az a cél, hogy a szerver felé minimális lekérés induljon, (lehetőleg csak kettő: a query, meg a designelemek "egybeképe"). Hát ahogy most nézegettem, maga az alapelv, az elég hasonló ahhoz, mint amit én produkáltam, csak ez itt nem JSON formátumban jön (hanem nyers) és nem tud crossdomain-t (mert nincs rá szükség). Elhiszem, de a crossdomain itt nem szempont. Viszont, ha te ezeket ennyire vágod, akkor majd időnként zaklatnálak JS related dolgokkal, ha nem baj, mert én inkább backendes vagyok és a JS az agyamra megy. Az adatbázis hozzáférése ugyanaz, mint az adminé és az FTP-é, amit átpasszoltam anno IRC-n, az adminer elérését meg lásd az FTP-n. De szerintem, ha sok SNES játékot akarsz, akkor pont az oscomp a 87 db SNES játékkal nem a legjobb választás, inkább torrentrül célszerűbb lerántani az összeset. És mivel indokolták? |