- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Apple notebookok
- Fejhallgató erősítő és DAC topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Vezetékes FEJhallgatók
- A TCL minden korábbinál nagyobb LCD tévéket akar gyártani
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- MediaTek lapkával érkezhet a következő Samsung csúcstablet
- BIOS frissítés
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Magga: PLEX: multimédia az egész lakásban
- antikomcsi: Való Világ: A piszkos 12 - VV12 - Való Világ 12
- creation: Hogyan lesz léghűtésből folyadék hűtés? Végy egy torony hűtőt és vágd szét!
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
Hirdetés
-
A Google segített az Apple AI-modelleket betanítani
it Az Apple a Google segítségét is felhasználta, amikor a saját AI-modelljeit tréningezte.
-
Íme a Valorant trófea/achievement listája
gp Nem sokkal a hivatalos bejelentés után máris felbukkantak a megszerezhető eredmények.
-
Friss játéktrióhoz készült az új GeForce driver
ph A WHQL minősítésű, 555.99-es eszközillesztő hibajavításokban is bővelkedik.
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
"igen, lehet több. mert egy elem több listában is szerepelhet és hol ezt töltöm be, hol azt, persze nem egyszerre."
Ha általánosabban akarod "megfogalmazni", akkor ilyenekre épp, hogy nem id-t szokás használni, hanem class-t...Amúgy felőlem azt csinálsz, amit akarsz, ezek csak jótanácsok, remélem azért azt vágod.
[ Szerkesztve ]
Sk8erPeter
-
martonx
veterán
válasz Sk8erPeter #2401 üzenetére
"hogy nem id-t szokás használni, hanem class-t" - hű de finom voltál. Mondjuk ki nyíltan, hátha más még a jó módszertan tanulási fázisában van: a DOM elemek id-ja EGYEDI KELL, HOGY LEGYEN! Attól még, hogy a böngésző nem hal be látványosan, hogy több elemnek is azonos az id-ja, attól még nem kell hibás következtetéseket levonni, és össze-vissza id-zni.
Szerencsére a böngészőket igyekeznek hülye programozó biztosra készíteni, így maximum csak akkor okoz gondot az elcseszett id-zás, ha javascriptelni akar valaki, netán css-ezni, szóval kb. bármikorÉn kérek elnézést!
-
trisztan94
őstag
válasz martonx #2402 üzenetére
Sok szarakodástól mentene meg azért ha lenne egy fajin kis hibaüzenete a html/css-nek, nem? Pofádba vágja mint a szerveroldaliak, hogy egyszerre csak egy helyre rakjá' id-t!
Vagy ami még jobb lenne:
Css hibaüzenetek amik kiírják, hogy nem lehet azt az x margót berakni mert ez meg ez felülírja. Esküszöm, ezért még fizetnék is...https://heureka-kreativ.hu
-
válasz trisztan94 #2404 üzenetére
A böngészők fejlesztői eszközei tűpontosan megmondják, melyik CSS szabályt honnan szedik.
-
martonx
veterán
válasz trisztan94 #2404 üzenetére
ööö, ezt megcsinálja neked a visual studio, netbeans kód írás közben is, plusz az összes böngésző fejlesztő eszköze.
Én kérek elnézést!
-
trisztan94
őstag
Ja persze, ezt tudom
Személyes véleményem az, hogy jobb lenne, ha egy jó nagy hibaüzenetet dobna ki a lap. Vagy legalább valamit, hogy ne kelljen csak azért megnyitni a devconsole-t. Lehet csinálok is egy bővítményt erre chrome-hoz, végülis nem olyan bonyolult, nem? Csak kiszedni a console hibát egy változóba és kiírni a képernyőre..Na jó, ez már kezd nagyon off lenni
https://heureka-kreativ.hu
-
Speeedfire
nagyúr
Kis help kellene.
Adott egy elem, amire vagy ha az elemire kattintok akkor történik valami. Kivéve abban az esetben, ha egy adott elemére kattintok, akkor ne. [link]
A not függvényt néztem, de nem akart menni. Illetve próbáltam az e.target függvényt is, de nem akart azzal sem menni nekem.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
Jim-Y
veterán
válasz Speeedfire #2408 üzenetére
Nagyon kellett sietnem így csak addig csináltam amig azt az eredményt kaptam amit vártam, bocs ha vmi hiba van benne, 1h mulva átnézem, de addig lesd meg: http://jsfiddle.net/Jim_Y/bjxDL/3/
-
Jim-Y
veterán
-
martonx
veterán
Nem próbáltam ki, de ezzel a selector-os trükkel nem pont ugyanazt lehet elérni?
$('#teszt > div:not(.neee)').on('click', function(e){
$(this).toggleClass('red');
});illetve a this helyett, lehet hogy e.target kell, most lusta vagyok kipróbálni, ráadásul melóhelyen érthetetlen módon le van tiltva minden CDN, így a jsfiddle is használhatatlan
[ Szerkesztve ]
Én kérek elnézést!
-
Jim-Y
veterán
válasz martonx #2411 üzenetére
Hát, majdnem, kipróbáltam a tiédet, és annyiban más csak, hogy magára a teszt divre kattintva sem történik semmi, az én verziómban magára a divre, illetve az alatta lévő divekre kattintva történik kiemelés kivéve a nee classos. Egyébként szerintem ez is tök jó.
Személyes véleményem, amit párszor már itt a topikban megkaptam, hogy nem mindig a legrövidebb megoldás az ajánlatos, mert ha valaki más kevésbé hozzáértő ránéz a kódra, akkor nem biztos, hogy elsőre tudja, hogy mit csinál a kód. Míg -szerintem-, az én verzióm eléggé magáért beszél Na nem offense-ből írtam ezt.
-
Sk8erPeter
nagyúr
Ez olyankor igaz, amikor valami felesleges kódbenyomorítás történik hencegésből (hogy ő még azt is képes kiolvasni, de aztán két hónap múlva megszopja ) vagy helyspórolásból, vagy más értelmetlen célból, aminek a karbantartása iszonyatos, de jelenleg az a helyzet, hogy szerintem martonx kódja is teljesen magáért beszél
meg működik, igazából tömörített leírása a korábbinak:
http://jsfiddle.net/bjxDL/7/
A selectorban már egyből benne van, mit akarunk egyből kizárni.
Persze az is tény, hogy konkrét megvalósítástól eltérhet, hogy biztos erre van-e szükség - például ha csak bizonyos esetekben, bizonyos egyéb feltételektől függően akarjuk, hogy az adott, kizárandó elemre más szabályok vonatkozzanak, nem általános érvényű a szabály; olyankor pedig a Te megoldásod a jó. Tehát mindkettő megoldásotok jó, feladatfüggő, melyiket érdemes használni, amennyiben általános szabályról van szó, én is inkább beraknám a mutatott módon a selectorba a kizáró feltételt, és akkor még felesleges if-else-ekkel sem növeljük a kódzajt.Sk8erPeter
-
Speeedfire
nagyúr
Ez volt a legjobb megoldás. Igazából í szülőre/gyermekre való klikkelés volt a lényeg, annyi kikötéssel, hogy ha az adott div-re(neee) kattintok akkor ne legyen semmi sem.
Bár érdekes, hogy a gyermekkel nem lehet megoldani ezt, illetve lehet, csak hibát dob.Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
martonx
veterán
Köszi az észrevételt!
Valójában az érdekelt, hogy meg lehet-e oldani tisztán css selectorral a dolgot (speedfire kérdéseit régóta ignorálom, de ez most kivételesen érdekes volt), és örültem neki, hogy sikerült. Ugye webről beszélünk, pont jquery topikban, ahol is állandó vesszőparipám, hogy ahol lehet, ott ne jquery-zzünk, meg js-ezzünk, hanem CSS-el kellene megoldani minél több funkciót, mert a böngészőkben az a leggyorsabb, leghatékonyabb.A css selector sajna ilyen randa, ez nem azon múlik, hogy tömörebben akartam-e megcsinálni, a tömörség abszolút nem volt célom.
Olyan ez, mintha egy szöveg feldolgozási feladatot megoldasz húsz sornyi if, meg string kivágás, meg mittudomén milyen műveletekkel, vagy pedig ráhúzol egy rohadt ronda, de brutálisan hatékony regex pattern-t és 1 sornyi kóddal megoldottad.
Vajon melyik megoldás a jobb? Az igazság persze mindig odaát van, örökérvényű általános igazságok nincsenekA nem mindig a legrövídebb megoldást egyébként többször is a változó és függvény nevekre értettük, azoknak a lespórolása tényleg felér egy öntökön szúrással, pláne ha két év múlva kell ránézned, hogy mit is akarhattál anno a kódban az a, meg b, meg izé nevű függvényekkel megoldani. Illetve arról, hogy ha valaki 10 sornyi kódot belenyomorít egy 1000 karakter hosszú programosorba, közben 10 pontosvesszővel lezárva az utasításokat.
Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz martonx #2415 üzenetére
"Olyan ez, mintha egy szöveg feldolgozási feladatot megoldasz húsz sornyi if, meg string kivágás, meg mittudomén milyen műveletekkel, vagy pedig ráhúzol egy rohadt ronda, de brutálisan hatékony regex pattern-t és 1 sornyi kóddal megoldottad."
Azért a hatékonyság tekintetében nem egyértelmű, hogy a regexp nyerne szerintem (nyilván esetfüggő, de általánosságban). Ettől függetlenül ha valaki már átlátja a komplexebb kifejezéseket, akkor annyiból mindenképp hatékonyabb tud lenni az egész, hogy sokkal gyorsabban elkészül egy ilyen megoldással az ember. De azért a regexpek megírásával és tesztelésével is szépen el lehet pöcsölni (viszont iszonyatosan jó segédeszközök vannak rá szerencsére), bár nem lenne ez másképpen valami bugyutább szekvenciális megoldásnál sem. A teljesítménybeli különbségeket pedig jó esetben észre sem vesszük felhasználói szemmel.
Sk8erPeter
-
Speeedfire
nagyúr
válasz martonx #2415 üzenetére
Csak kár, hogy nem úgy működik, mint az "elvárt" feladat. Te a gyermeket figyeled, de nem azt kell, hanem a szülőt. Azt pedig a css selectorral nem lehet szerintem megoldani. Ez lenne a "megoldás", de erre hibát dob.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
martonx
veterán
válasz Speeedfire #2417 üzenetére
Ugyan ez egy jquery topik, mi pedig CSS-ezünk, de ezt a selectort próbáld ki: "div:not(.neee)"
Elsőre félreértettelek, hogy pontosan mit is szeretnél, ez a css selector még sokkal egyszerűbb is, mint az előző volt.Én kérek elnézést!
-
trisztan94
őstag
Guten tag alles!
jQuery UI Datepicker widgetről lenne egy rövidke kérdésem:
Van egy inputom melybe a user beleírja a születésnapját. Na most ezt én datepicker-rel gondoltam, hogy azzal nagyon fajin lesz, szép meg minden
Van azon kívül 3 hidden input a formban, egy az évnek, egy a hónapnak és egy a napnak, oda szeretném belepakolni ezeket az értékeket. A gond ott fakad, hogy én a felhasználónak szövegként írom ki a hónapot, tehát pl: 1994. Június 21., de a hidden inputba a hónapot számként kéne berakni.Na most én erre ezt a megoldást találtam ki, de van egy olyan sejtésem, hogy nagyon gányolt dolog, sokkal szebben meglehetne oldani
$("#datepicker").datepicker({
changeMonth: true,
changeYear: true,
yearRange: '1910:2013',
dateFormat: 'yy, MM, d'
});
$('#datepicker').change(function () {
var dateValue = $(this).val();
var splitted = dateValue.split(', ');
$('#BirthYear').val(splitted[0]);
var numericMonth;
switch(splitted[1])
{
case "January":
numericMonth = 1;
break;
case "February":
numericMonth = 2;
break;
case "March":
numericMonth = 3;
break;
case "April":
numericMonth = 4;
break;
case "May":
numericMonth = 5;
break;
case "June":
numericMonth = 6;
break;
case "July":
numericMonth = 7;
break;
case "August":
numericMonth = 8;
break;
case "September":
numericMonth = 9;
break;
case "October":
numericMonth = 10;
break;
case "November":
numericMonth = 11;
break;
case "December":
numericMonth = 12;
break;
}
$('#BirthMonth').val(numericMonth);
$('#BirthDay').val(splitted[2]);
});Ötlet? Valaki csinált mán' ilyentet?
https://heureka-kreativ.hu
-
Jim-Y
veterán
válasz trisztan94 #2419 üzenetére
Erre jó lenne egy ENUM szerintem, amit javascriptben Objecttel tudsz megoldani.
var Honapok = {
January: '01',
February: '02',
March: '03',
April: '04',
May: '05',
June: '06',
July: '07',
August: '08',
September: '09',
October: '10',
November: '11',
December: '12'
};vagy ha már úgyis 1-12-ig megy, akkor egy sima tömb is jó erre egytől indexelve.
-
biker
nagyúr
szeretnék egy kis segítséget kérni esemény automatikus meghívása ügében
van egy demo sablon, tele okossággal, benne notification elemek is.
4 féle, a demoban klikkre hívva meg, és klikkre elrejtveÉn azt szeretném, hogy oldal betöltéskor, mikor kiíratom a hibát fusson le
tehát ne csak a trigger eventre
//===== TOP FIXED NOTIFICATION =====//
//===== TOP FIXED NOTIFICATION =====//
var myMessages = ['info-top','warning-top','error-top','success-top']; // define the messages types
function hideAllMessages()
{
var messagesHeights = new Array(); // this array will store height for each
for (i=0; i<myMessages.length; i++)
{
messagesHeights[i] = $('.' + myMessages[i]).outerHeight();
$('.' + myMessages[i]).css('top', -messagesHeights[i]); //move element outside viewport
}
}
function showMessage(type)
{
$('.'+ type +'-trigger').click(function(){
hideAllMessages();
$('.'+type).animate({top:"0"}, 500);
});
}
// Initially, hide them all
hideAllMessages();
// Show message
for(var i=0;i<myMessages.length;i++)
{
showMessage(myMessages[i]);
}
// When message is clicked, hide it
$('.message-top').click(function(){
$(this).animate({top: -$(this).outerHeight()}, 500);
});ez a jquery része
ezt a divet, ami az error, ami alap rejtve van, szeretném automatikusan megjelenítetni
<div class="error-top message-top">
<h3>Ups, an error ocurred</h3>
<p>This is just an error notification message.</p>
</div>amit ez a gomb triggerel jelenleg, és nem bírkozom meg a .ready megoldással
<p>Click this button to see top fixed Error notification</p>
<a href="#" class="trigger error-top-trigger button grey">Error Notifivation</a>hogy a rákba hívjam meg automatikusan?
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
biker
nagyúr
ja, ha elírom a kódot, persze hogy szar
<script>
$(document).ready(function() {
$('.error-top').animate({top:"0"}, 500);
});</script>
ezzel jelenik meg jól...Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Jim-Y
veterán
válasz trisztan94 #2423 üzenetére
Mielőtt elsikkadna a dolog. Ha már írtam, hogy az ENUM-okat Objectekkel szokták megoldani, akkor hozzá kéne(kellett) volna tennem, hogy ilyenkor szintaktikusan a property neveket csupa nagybetűvel szokták írni. Én azért írtam kicsivel, hogy össze tudd hasonlítani könnyebben a datepickerből kapott stringgel a propertyneveket.
-
Speeedfire
nagyúr
válasz martonx #2418 üzenetére
Lehet én értelek félre, vagy elbeszélünk egymás mellett. Én a #teszt div-et figyelem csak, ha arra kattint valaki akkor történik valami ugye ebbe beletartozik a gyermek is. A gyermekekre kattintva is bejön, mivel a szülőből származnak, viszont ha a gyermeknek van egy megadott osztálya, akkor nem szabad bekövetkeznie az eseménynek. Lényegében egy selectorban szeretném megoldani azt, hogy mind a kettőt ki lehessen küszöbölni.
<div id="teszt">
<div class="neee">egy</div>
<div>ketto</div>
<div>harom</div>
<div>negy</div>
</div>Erre gondoltál ha jól sejtem, ellenben ez nem azt csinálja, amit szeretnék, mivel ha jól sejtem akkor ez a #teszt div-nek nézi meg, hogy van-e neee osztálya. Ilyesmi megoldás lehetne még, de ez nem megy.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
trisztan94
őstag
Sziasztok!
Ajax szerű hatást szeretnék elérni, ajax nélkül, mi erre a legjobb megoldás?
A lényeg annyi, hogy újratöltés nélkül szeretnék változtatni egy tartalom div-en. Azért felesleges nekem az ajax, mert csak pár mondat változna a div-ben, minek ezzel lassítani az oldalt?
Én arra gondoltam, hogy az összes aloldal tartalmát egy-egy div-be rakom, elrejtem és jquery-vel az id-ket változtatom.https://heureka-kreativ.hu
-
martonx
veterán
válasz trisztan94 #2426 üzenetére
Tudod-e, hogy mi mindenre jó az ajax? Miért lassítana bármit is az ajax? Vagy a jquery .load függvénye? Miért ne lehetne statikus html tartalmakat ajax-ozni?
Én kérek elnézést!
-
Karma
félisten
válasz trisztan94 #2428 üzenetére
Csak azt nem sikerült megírnod, hogy igazából mi az, ami meg kellene
Mert JavaScriptből semmiből se tart egy div tartalmát cserélgetni. Mint ahogy annak sincs akadálya, hogy több aloldalt tölts le egyben, és csak azt váltogasd, hogy melyik látszik (ez a Single Page Web Application témakör).
“All nothings are not equal.”
-
martonx
veterán
válasz trisztan94 #2428 üzenetére
Nem írtad le, hogy miért, csak annyit írtál, hogy nem kell. Az, hogy lassú az nem érv, hanem baromság.
A megrendelőd atom órával fogja mérni a szöveg lecserélésének idejét nanoszekundumokban? És ha 20 miliszekundum fölé megy akkor dádá lesz, vagy mi?Nekem van egy tisztán statikus oldalam, amit ingyen csináltam a gyerek óvodájának. Nem nagy szám, de ne felejtsük el, hogy ingyen csináltam. Nézd meg mennyi js van benne:
Ekkoriban éppen a jquery lecserélős időszakomban voltam, szóval plain js az egész.
Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz trisztan94 #2419 üzenetére
Ha jQuery UI Datepickert használsz, akkor minek külön inputba rakni a hónapot?
Vagy ez volt a kifejezett kérés?Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #2425 üzenetére
'#teszt:not(".neee")'
Gyors magyarázat: ezzel a szülődivre vonatkozó kritériumot adtál meg, tehát olyan #teszt elemet keresel, ami nincs "neee" class-szel ellátva. Ergo ez arra az esetre nem fog működni, amit te szeretnél.
Ha a szülőelem figyelése a feladat, akkor olyasmi a megoldás, mint amit Jim-Y javasolt.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #2428 üzenetére
Ahogy a másik topicban írtam, CSS3-mal arra is van lehetőség, hogy simán JavaScript nélkül váltogasd elemek megjelenítését, gyors keresés után tuti találsz ilyen cikket. Ha régi böngészőkkel kompatibilitás is szempont, akkor semmiképpen sem fogod megúszni JavaScript-kódolás nélkül.
Egyébként én tuti mondanám a helyedben a megrendelőnek, hogy ez az elképzelés teljesen felesleges spórolás, valami tévedésben van (persze nem ezt kell mondani neki, hanem elmagyarázni, miért lesz jó neki mégis, ha engedi, hogy azt csináld, ami jó).Sk8erPeter
-
Speeedfire
nagyúr
válasz Sk8erPeter #2432 üzenetére
Ugyan ezt írtam én is. Én sem látom Jim-Y megoldásánál jobbat erre az esetre.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
trisztan94
őstag
Sziasztok!
Csak nálam jön elő az a dolog, hogy egy ajaxolt tartalom valamiért lejjebb kerül pozicionálás terén?
jQuery kód:
function ajax (url, target) {
if(typeof(target)==='undefined') target = '#inner-content';
$('#main-image').css('background', '#151515');
//Ha ezt a css tulajdonságot megadom neki akkor visszaugrik normálisan..
//$('#content').css('top', '112px');
$(target).load(url);
}https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #2435 üzenetére
A 20. másodperc körüli lejjebb csúszás az érdekes?
Csak mert most ez olyan kérdés volt, mintha egy autószerelőt megkérdeznél telefonban arról, hogy miért nem indul a kocsid. 0 konkrét információ birtokában hogyan mondja meg?
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #2436 üzenetére
Igen, az! A #Content div mintha kapna egy felső paddingot, de hiába nullázom le, akkor sem történik semmi. Margin sem segít. Ha negatív margót adok neki miután betöltődött, akkor meg elcsúszik a design...
A #main-image div is mintha kapna valamit, mert kicsúszik az inspect általi keretből..
De ez amúgy mindig előjön az összes ajaxos oldalnál amit csinálok. Pl: [link]
Miután rákattintasz a főoldal menüpontra ott is "összemegy" egy kicsit az újonnan ajaxolt tartalom[ Szerkesztve ]
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #2437 üzenetére
Valszeg mert mindenhol vmelyik lépést elrontod.
Például a belinkelt oldalon sem csak az érdekes fragmentet küldöd vissza szerveroldalról a főoldalra kattintáskor, hanem a teljes tartalmat, pedig már említettem, hogy ilyen leegyszerűsített REST API-szerűséget csinálhatnál, hogy mondjuk a /get/page/szolgaltatasok vagy get/page-fragment/szolgaltatasok vagy hasonló kérésre kifejezetten azt az oldaltöredéket küldöd vissza a kliensoldalnak, míg ha a teljes http://www.tharline.tk/ShinBet/szolgaltatasok.html címet kéri le valaki, akkor a teljes oldalt megkapja - így például nem állhatna elő az az egyből nagyon feltűnő, és szerintem gáz helyzet, hogy ha a szolgáltatásokra jobb klikkelek, majd link új fülön megnyitása, akkor ott csak konkrétan az oldaltöredéket kapom, fehér háttérrel, stílus nélküli, sima fekete szöveggel...
RÁADÁSUL ha ilyesmi megoldást választanál, akkor nem akarna a főoldalra klikkeléskor MINDEN betöltődni, kezdve a CSS-fájlok újbóli betöltésével (ami sztem itt pl. a gond), JS-fájlok újbóli betöltődésével, meg az összes többi, a kérés szempontjából tök felesleges tartalom betöltődésével.
Említettél ezenkívül valami Firefox miatti gányolós, JavaScripttel történő CSS-betöltős megoldást, aminek az elkerülésére én próbáltalak rábeszélni, de sajnos nem sikerült meggyőznöm téged.A lényeg, hogy én könnyű kerülő megoldásként (ami gyorsan megvalósítható) olyan kialakítást javaslok az AJAX-olásra, hogy az URL alapján tudd eldönteni szerveroldalon, milyen tartalom kell neked épp (REST API-féleség), és csak azt add vissza a kliensnek.
[ Szerkesztve ]
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #2438 üzenetére
A Shin-es oldalon nem kérem újra be az egész index.html-t fájlt, csak a #content div tartalmát. De nem is az a lényeg, az mán' készen van, a kreaterv a fontos!
Na viszont pont most rájöttem valamire, lehet ezt akarod nekem elmagyarázni csak sehogy sem fogtam fel
A kreatervnél, ha nem html fájlt kérek le, hanem egy txt-t (Igaz, html tag-ekkel benne) akkor nincs az említett lecsúszás. Most így megvilágosodva gyanakodok azon, hogy azért történik a dolog, mert egy html fájlnak alapból van asszem 10px margin+padding-ja, és azt illeszti oda be, nem? És gondolom akkor most jön ide az általad említett rest api, ugye? Hogy nem az egész html fájlt kérem le, hanem csak azt amire abból nekem szükségem van. Ahaa! Az csak szerveroldallal működik?"Említettél ezenkívül valami Firefox miatti gányolós, JavaScripttel történő CSS-betöltős megoldást, aminek az elkerülésére én próbáltalak rábeszélni, de sajnos nem sikerült meggyőznöm téged."
Hát igen, ez tényleg úgy maradt, de igazából nem érdekel. 15k-t kaptam az oldalért, nem volt kedvem újraírni ezeket. Mé', ránézel, valaki aszondja neked ilyen kell 15k-ért, megcsinálnád? Animációkkal meg minden.
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #2439 üzenetére
"A Shin-es oldalon nem kérem újra be az egész index.html-t fájlt, csak a #content div tartalmát."
Na ne kamuzzá'... Akkor nyiss egy Network fület a fejlesztőpanelen (F12), és nézd meg, mi lesz a response az "index.html #content"-re. Megkapod az egész oldalt válaszul, aztán a jQuery kiszedi ebből a #content divet. Mintha .find('#content') kódrészlettel rákerestél volna, és azt appendelted volna. Különben a kliensoldal mégis hogy szedné ki szerinted, ha ezt szerveroldalon nem intézted el? A szerveroldal is csak annyit kap feladatul, hogy "add ide az index.html tartalmát", ő ezt visszaadja a kliensnek, és ezzel véget is ér a románcuk; aztán hogy a kliensoldal mit kezd ezzel a válasszal, az már neki teljesen mindegy."egy html fájlnak alapból van asszem 10px margin+padding-ja, és azt illeszti oda be, nem?"
Ezt a mondatrészt nem sikerült értelmeznem.
Egy fájlnak mióta lehet marginja meg paddingje?
Ha magára a html-tagre gondolsz, hogy van egy rá vonatkozó default stylesheet a böngészőben, akkor igen... de mivel ezek nagy részét egy reset.css-jellegű fájllal felülírod, ezért onnantól kezdve a te stílusaid jutnak érvényre.Az én magyarázatomnak a lényege az volt, hogy az AJAX-olásod esetén most felesleges <html>, <body> és egyéb nem szükséges tageket NE kérd le, csak azt a töredéket küldd vissza a kliensoldalnak, ami az érdekes rész, ezzel terhet is veszel le a szerveroldal válláról. De igazából pont ezt csináltad ezen az oldaladon. Csak itt a főoldalra vonatkozóan is ezt kellett volna csinálni.
"Az csak szerveroldallal működik?"
Ha megadod a fragmentet, akkor kliensoldalon is szűrhető eleve a tartalom, de felesleges terhelés a szervernek, kliensnek egyaránt az, hogy egyébként a szervertől a teljes tartalmat elkéred, megkapod, feldolgozod, játszol vele. Jobb eleve a lényeget megkapni, amire szükséged van, nem többet, nem kevesebbet.Sk8erPeter
-
trisztan94
őstag
válasz trisztan94 #2439 üzenetére
Más dolog:
PHP-val generált IMG tag-eket JSON-nal érdemes visszaküldeni a JS-nek, vagy anélkül?Bővebben:
Egy php fájl meglesi, hogy a portfolio_kepek mappában hány kép van, a képeket belerakja egy <img> tag-be:for($x=0; $x < $totimg; $x++)
{
echo "<img src='" . $imgdir . $a_img[$x] . "' rel='lightbox[portfolio]' />";
}Na most, csinálhatnám ugye azt, hogy egy tömbbe rakom ezeket az img tag-eket (Vagy lehet elég lenne csak az útvonalat, az img tag-et meg js-szel beilleszteni a html-be) és azt utána json_encode-val visszaküldeni a script-nek ami azt szépen beilleszti a html-be.
Vagy szimplán így hagyom az egészet és akkor a data változónak az ajax success metódusában az lesz az értéke, hogy:<img src='eleresi/utvonal.kit' rel='lightbox[portfolio]' />
<img src='eleresi/utvonal2.kit' rel='lightbox[portfolio]' />
<img src='eleresi/utvonal3.kit' rel='lightbox[portfolio]' />
...stbMelyik a jobb/szebb? (gyorsabb?)
https://heureka-kreativ.hu
-
Jim-Y
veterán
válasz trisztan94 #2441 üzenetére
És mi lenne ha csak az elérési utat küldenéd vissza stringként, akármilyen struktúrában, és kliensoldalon csinálnál belűlök img taget?
-
Sk8erPeter
nagyúr
válasz trisztan94 #2441 üzenetére
Én mindenképp JSON-ben visszaküldést javaslom, mert - asszem már itt is kifejtettem - így tudsz visszaküldeni a szervertől státuszadatokat is, hogy mi a helyzet a kéréssel, sikerült-e, vagy sem, ha épp nem sikerült, akkor miért nem, ez alapján tudsz megjeleníteni felhasználóbarát üzeneteket is, ha valami para történt a lekérés közben.
Ja, és természetesen Jim-Y felvetése is jogos, hogy csupán elérési utak visszaküldése szintén jó (jobb) megoldás egy tömbben, amin végig tudsz iterálni.
Szóval lenne három fontos dolog, amit visszaküldenél a szervertől a kliensnek JSON-ben: a státuszkód, státuszüzenet, meg maga az adat. Az adat meg elég tág fogalom, ergo csomó mindent bele tudsz passzírozni, és nem vagy konkrét HTML-kódhoz kötve, azt generálsz le belőle kliensoldalon, amit akarsz.
Arra viszont figyelj oda, hogy ne ess át a ló túlsó oldalára, mert nem azt jelenti a dolog, hogy mindent JS-sel elintézel, aztán kész vagy, először legyen meg az oldal rendes szerveroldali legenerálása, mindenféle JS nélkül (így Google-koma is megtalálja), aztán jöhet mindenféle kliensoldali gizdulás.
[ Szerkesztve ]
Sk8erPeter
-
trisztan94
őstag
válasz Sk8erPeter #2443 üzenetére
Akkor JSON lesz!
Én úgy szoktam, hogy előbb bekapcsolt javascript-tel építem fel az oldalt, aztán ha minden faintos jöhet a kikapcsolt javascriptes megoldás. Lehet, hogy így több macera, de szeretem a megrendelőnek megmutatni "korán", hogy milyen az oldal, tetszik-e stb, aztán megcsinálom az olyan dolgokat amikre ő nem feltétlenül kíváncsi (mondjuk, hogy milyen kikapcsolt js esetében az oldal).
https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz trisztan94 #2444 üzenetére
"Én úgy szoktam, hogy előbb bekapcsolt javascript-tel építem fel az oldalt, aztán ha minden faintos jöhet a kikapcsolt javascriptes megoldás."
Hmm, pedig sztem a fordított irány jobb lehet, mert a JS-es szépítgetés már sztem jóval egyszerűbb és gyorsabb.Sk8erPeter
-
martonx
veterán
válasz Sk8erPeter #2445 üzenetére
szvsz, aki manapság kikapcsolt js-el böngészik az magára vessen.
Én kérek elnézést!
-
spammer
veterán
válasz martonx #2446 üzenetére
+1
Én sem értem, miért kell kikapcsolgatni. Én bele is raktam az oldalaba egy noscript figyelmeztetést, hogy "nincs js, baxhatod"
De egyébként sem érdemes szerintem parázni rajta. Átlag user nem kapcsolgatja ki, azt sem tudja, mi az és hol kell, aki ért hozzá, az meg tudja, mi a teendő.
[ Szerkesztve ]
„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."
-
martonx
veterán
válasz Sk8erPeter #2448 üzenetére
Ez jogos, a SEO optimalizálás, fontos dolog, de itt most nem erről volt szó, hanem hogy a megrendelő kikapcsolt js-el mit fog látni.
Amikor írtam, hogy nem foglalkozok kikapcsolt js-el böngésző felhasználókkal, pongyolán fogalmaztam, azaz arra mindig figyelek, hogy azért az ajax navigációnak legyen html-es fallback-je a kereső robotok kedvéért.
Ám js-el nem csak navigációt, hanem kismillió mást is megoldunk, erre értettem igaziból, hogy ezekkel nem kezdek el trükközni csak azért, hogy js nélküli user is hasonló élményt kapjon, mint js-el.Én kérek elnézést!
-
Sk8erPeter
nagyúr
válasz martonx #2449 üzenetére
Ezzel így már egyetértek, de sajnos sokan átesnek a ló túlsó oldalára, és pont így állnak hozzá, hogy "hát az a júzer egy idióta, akinél nincs JS bekapcsolva!", ami részben igaz is, de azt ilyenkor nagyon elfelejtik, hogy nem csak emberek keresik ám fel a honlapját, akiknél van bekapcsolt JS, így sokaknál az érdemi tartalom kikapcsolt JS-sel még csak meg sem jelenik. De ha meg is jelenik, akkor valahogy tök másképp néz ki, mint amikor ember böngészget a honlapon (ez sem jó). A következő probléma meg az szokott lenni, hogy ha meg is jelenik, akkor a linkek nem is igazi linkek (mert mondjuk úgy intézi el, hogy egy divre kattintva AJAX-szal megjelenít tartalmat), így a Google a saját oldalról navigálva nem is fogja feltétlenül bejárni az adott oldalt (csak akkor, ha külső oldal mutat erre az oldalra), vagy a linkekre kattintva nem az elvártnak megfelelően működik az oldal (lásd pont azt a példát, amire korábban épp írtam ezt az egészet), így a Google megint csak más tartalmat lát, mint kellene.
Másik elvetemült, manapság sajnos nagyon gyakran alkalmazott példa, amikor egy bejelentkező űrlap nem is valódi űrlap, csak odadobált pár textfieldet, password fieldet, aztán majd JS-sel jól elküldi az adatokat a szervernek, és csekkolja, de kikapcsolt JS-sel máris meghal a form működése, ami magával vonja azt is, hogy a böngésző autocomplete mechanizmusai sem működnek megfelelően, vagy mondjuk a különböző formelemekre vonatkozó támogatás (igaz, itt szóba kerülnek a HTML5-ös elemek is, de mondjuk az megint más téma) nem olyan, mint kellene akár mobilon; de még kismillió ilyen apró hibát látok oldalakon, amikor a fejlesztők pontosan így vannak vele, hogy hát az magára vessen, aki kikapcsolja a JS-t. Azért a dolog nem mindig ilyen egyszerű, mivel pont emiatt a hozzáállás miatt feledkezhetnek meg egy csomó kis dologról, ami azért számít.
Most pont nem rád gondolok, mert rólad feltételezem, hogy azért ilyen apróságokra odafigyelsz, de hidd el, hogy tele van a net az ilyen jellegű szabadság miatti gányolással (és a topicban is látunk rá példát).Sk8erPeter
Új hozzászólás Aktív témák
- Bontatlan Új BOSE QuietComfort Ultra Headphones, bézs-aranyLimitált kiadás
- ASUS TUF Gaming FX505DU Ryzen 7 3750H GTX 1660 Ti 6GB 16GB DDR4 512GB SSD + 1TB HDD 120Hz Full HD
- ASUS TUF F15 FX516PE 11th Gen intel i7 RTX 3050 Ti 4GB 16GB DDR4 ram 512GB NVME SSD 144Hz Full HD
- Dell XPS 15 9570 Notebook/Laptop, 15,6" 4K Touch, I7-8750H CPU, 32GB DDR4, 512GB SSD, GTX 1050 TI, W
- Szinte új Meta Quest 3 - 128GB + BoboVR M3 Pro fejpánt + extra akkuk dokkolóval / 2,5 év garancia