Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
Hát ez a kód ebben a formában igen ocsmány.
Itt tudod szépíteni:
http://jsbeautifier.org/Eredménye:
function akarmi() {
var kesz = false;
if (document.getElementById('iderakd')) {
$('#iderakd').fadeIn('fast', function () {
$('#iderakdmasik').html('MOSTMINDEGY');
$('#iderakdmasik').fadeIn('slow');
kesz = true;
alert('Lefutottam');
});
}
return kesz;
}Felesleges a document.getElementById, ha már jQuery-t használsz.
document.getElementById('iderakd')
HELYETT
$('#iderakd')A kód érdemi részére: szerintem módosítanod kéne a gondolatmenetedet, és épp, hogy a callback-hez kötni azt a függvényt, amit abban az esetben kell meghívni, ha az animáció kész van, mert itt a függvény azonnal visszatér (de ezt látod is), a callback tulajdonképpen aszinkron módon ettől függetlenül végrehajtódik.
Mi a cél?Sk8erPeter
-
Karma
félisten
"Tehát hogy ebből a függvényből csak akkor térjen vissza, ha már az egész animáció lefutott."
Ha jól kapisgálom, akkor szinkronná akarod tenni az animációt, azaz blokkoljon addig amíg be nem fejeződik... Na ezt felejtsd el, nem lehetséges, és káros is lenne (lefagy a böngészőtab).
A deferred.done() is csak annyit változtatna a helyzeten, hogy ha többmindent animálsz egy függvényhívással, akkor nem elemenként hívódik meg a callback, hanem csak egyszer, amikor az összes animáció befejeződött. De az aszinkronitás nem változik.
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
Karma már leírta előttem a lényeget. Érdemes lenne átgondolni, hogy biztos jól közelíted-e meg a kérdést, és hogyan is tudnád elkerülni az animáció megvárását. Végső esetben muszájból meg lehet oldani az animáció bizonyos időre történő beállítását ('slow', 'fast' helyett milliszekundumban megadott időre, pl. 600), majd ennyi idő utánra időzíteni egy függvény lefutását setTimeOut()-tal, de esélyes, hogy ez nem túl szép megoldást fog eredményezni.
Akkor végül is annyi a lényeg, hogy az animáció előtt elindítasz egy AJAX-os kérést, futtatod az animációt, közben AJAX-szal pedig lehet, hogy már rég megkaptad a választ, de az animáció még mindig fut, és nem akarod, hogy ez "félbeszakadjon", mert mondjuk kicseréled az adott elemet az AJAX-os kommunikáció eredményeként kapott válasz feldolgozása során?Hátha ez segít (saját megoldások helyett javasolnám ezt inkább):
jQuery BlockUI Plugin
Próbálgasd ki a demókat![ Szerkesztve ]
Sk8erPeter
-
Karma
félisten
Azt nem lehet értelmesen megoldani, hogy semmi se történjen amíg az animációk folynak. A callbackkel nem blokkoló várakozást érsz el, tehát amíg az animálás megy, szabadon fut a JS motor. Mindössze leírhatod, hogy mi történjen amikor vége.
Egyébként ez az alapja annak, hogy láncot alakíts ki az események között - szerintem ezt szeretnéd végcélként -, mindössze az áhított eszköz nem jó.
Apropó BlockUI: ez se a szó szigorú értelmében blokkol, csak elegánsan letakarja a felületet, hogy a felhasználó ne tudjon semmire se rányomni. Ilyen megoldást lehet csinálni, de a világot leállítani nem. (És még mindig, szerintem nem is akarod azt, csak azt hiszed )
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Én nagy ívben kerülném, hacsak nincs konkrétan a cross-domain requestekre szükség, és a jQuery beépített támogatása nem elég... Modern böngészőkben meg semmi szükség JSONP-vel kockáztatni.
Lacces: A kódodat nem olvastam, de a funkcionalitás amit szeretnél az "autocomplete" névre hallgat, és a jQuery UI-ban van is erre beépített komponens.
[ Szerkesztve ]
“All nothings are not equal.”
-
Cathfaern
nagyúr
Ugyebár a JSONP lényege, hogy egy tőled független rendszertől kapsz adatokat. A probléma ezzel az, hogy mivel saját rendszereden kívül van, ezért sose lehetsz biztos abban, hogy az teljesen biztonságos. Illetve nem is tudod ellenőrizni, hogy nem törték-e meg az adott szervert.
Szóval tegyük fel, ahonnan kapnád az adatokat feltörik, és JSONP-n keresztül nem az általad várt adatokat küldenek, hanem egy javascript kódot, ami így be fog ágyazódni az oldaladba, és bárkinél aki megtekinti, le fog futni. Innentől pedig keylogger-szerű dolgok, vagy böngésző js motorjában lévő bugok kihasználása a te oldaladon keresztül fog megtörténni. -
Sk8erPeter
nagyúr
Ez tulajdonképpen semmi extrát nem mutat be, csak annyit, hogy ne fogadjunk el szerveroldalon semmilyen beérkező adatot úgy, ahogy van, hanem futtassunk le rajta ellenőrzést, validáljuk, szűrjük, stb., tulajdonképpen általános irányelvek ráhúzhatók erre is. Ennyivel összefoglalható: soha ne bízz a külső adatforrásokban. Nemcsak JSONP, hanem bármi más beérkező adat esetében is igaz ugyanez.
=====
(#891) Frigo : ez tényleg jó hír. Jó tudni, hogy jelentős fejlesztések folynak a háttérben, nem reked meg a fejlesztés egy bizonyos szinten.
[ Szerkesztve ]
Sk8erPeter
-
papa019
senior tag
Ha JS-ben egy felugró div így van megoldva (google maps apihoz):
var a = "<a id='menu1'><div class='context'>Adatok szerkesztése<\/div><\/a><a id='menu2'><div class='context'>Körvonal szerkesztése<\/div><\/a><a id='menu2'><div class='context'>Törlés<\/div><\/a>";
contextmenuDir = document.createElement("div");
contextmenuDir.className = 'contextmenu';
contextmenuDir.innerHTML = a;
$(map.getDiv()).append(contextmenuDir);
setMenuXY(caurrentLatLng);
contextmenuDir.style.visibility = "visible";Én jQueryben így akarom megoldani (az index.php-ban létrehoztam ehhez egy <div id=contextmenu></div> részt)
var a = "<a id='menu1'><div class='context'>Adatok szerkesztése<\/div><\/a><a id='menu2'><div class='context'>Körvonal szerkesztése<\/div><\/a><a id='menu2'><div class='context'>Törlés<\/div><\/a>";
$('#contextmenu').html(a);
contextmenuDir = $('#contextmenu');
$('#contextmenu').appendTo(map.getDiv());
setMenuXY(caurrentLatLng);
$('#contextmenu').show();Előbbi működik, utóbbi nem... :S
Mit rontok el?[ Szerkesztve ]
-
Sk8erPeter
nagyúr
Itt a felvetést nem nagyon értem, hogy önmagában miért jelentene a JSONP-s adatlekérés nagyobb kockázatot, mintha bármi más módon kérnének le tőled adatot, és azt kéne szolgáltatnod kifelé... akár query stringként adják meg, akár POST metódussal, akár bármi más módon, a beérkező adatot (pl. ahol megadják, konkrétan milyen adatokra kíváncsiak), akkor is ellenőrizned, validálnod kell, és lényegében teljesen mindegy, hogy JSONP-vel, REST API-n keresztül, más web service-en keresztül kérik-e az adatot. Persze nyilván mondjuk egy SOAP vagy OData és komplikáltabb authentikáció esetén az bonyolultabb lehet, de itt most a legegyszerűbb "publikus" adatlekérésről beszélünk. "Publikus", mert ha valaki akarja, akkor nyugodtan lekéri ilyen módon az adatokat az oldaladról, mert láthatja a JS-kódodat, tehát nincs takargatva (de ez most úgy tűnt, nem is jelent problémát).
=================
(#942) Frigo : ez így önmagában tényleg nem biztos, hogy feltétlenül jó hír. Amiatt, amit Karma írt.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
"valószínűleg meg lehetne oldani, de nem tudom hogyan, kockáztatni meg nem fogok... ráadásul ha idegen oldalon van, ki tudja mennyire megbízható helyen... ha azt feltörik, megszerezhetik az azon az oldalon keresztül "dolgozók" adatait, hiszen oda fogják beírni, rosszabb esetben simán lekérik, mintha a már belépett felhasználó kérné"
Ha az megfelelő, ugyanúgy authentikációval lehet megoldani. Pl. session-alapú bejelentkezés után, egyszerűen megnézed, be van-e jelentkezve a felhasználó vagy sem, ha igen, akkor megmutatod neki az adatokat, ha nem, akkor nem.
A feltörést pedig már korábban is felhoztad, szerintem ez nem igazán érv, mert ha rendesen feltörik az oldaladat, akkor onnantól kezdve már totálisan mindegy, hogy abban az egy fájlban hogyan oldottad meg az adatlekérést és az adatok megmutatását, általában úgyis megszerzik a bejelentkezési adataidat pl. az adatbázis-szerverre vagy máshová. Vagy kifejthetnéd, mire gondolsz.[ Szerkesztve ]
Sk8erPeter
-
Soak
veterán
-
Soak
veterán
Közben foglalkoztam vele kicsit komolyabban és elég kézen fekvő volt, hogy .classneve , de kösznöm mindenesetre. Nem hinném, hogy ez annyira hazavágja a gépüket, nagyon kevés olyan dolog van az oldalon amit a felhasználó futtat.
Cathfaern : Egyelőre azért mert foglamam sincs hogyan kell ... .. Ezt megtaláltam és jónak tűnt, sok minden más is van a qtip-ben ezért kézenfekvőnek gondoltam, ha innen használom a dialogot.
[ Szerkesztve ]
-
Karma
félisten
-
Sk8erPeter
nagyúr
"de buttonnál én inkább onclick-el beírnám direktben mindnél, hogy mit indítson, mert minek terhelni vele a felhasználó gépét betöltés után"
A terhelés nem igazán érv ebben az esetben, az onclick attribútum használata meg csúnya, szemantikai keveredést jelent. Bár ez is felfogható egyfajta hitkérdésként, de szerintem tényleg nem szép keverni a kódot. Pl. az már eleve nem szép megoldás, ha a PHP-kódba (template-fájlba) is bele kell túrni ahhoz, hogy átírd mondjuk az onclick-attribútumba beleírt JavaScript-függvény nevét.
Meg mondjuk rengeteg legenerált elemnél rengeteg plusz karaktert is bele kell generálni az adott elemekbe szerveroldalon , a külső JS-fájlban tárolt eseménykezelőt meg cache-ből is előkotorhatja a böngésző.========
(#1010) Soak : na, hogyhogy mégis visszatértél a qtipre?
style: 'ui-tooltip-light ui-tooltip-rounded ui-tooltip-dialogue'
De azért kevered a jQuery UI Dialoggal is...?[ Szerkesztve ]
Sk8erPeter
-
martonx
veterán
Az animáció Android oprendszer, és mobil proci függő. Ami egy Galaxy SII-esen röccenés nélkül animál, az egy Alctel OT-akárhányon úgy szaggat, hogy rossz nézni. Viszont a többségnek Alcatel szintű hardware-e, meg oprendszere van.
Másrészt mindez egyedül Android-on probléma, IOS-en, WP7-en, BlackBerry-n nem probléma.
De ha egyszer mindenki a kártyásan 20K-s android-os fosokat veszi meg, akkor a fejlesztőnek ezt kell kiindulási alapnak vennieÉn kérek elnézést!
-
Male
nagyúr
Végülis megkerültem: mivel egyetlen függvény van, ami mást tölthet a form helyére, így betettem oda fixen egy destroy()-t... (A mégsem gomb is ezt használta, csak előbb nyomott egy destroy-t.)
Ha nincs szerkesztő, nem okoz hibát, ha meg van, akkor lefut. Viszont ez nem valami szép megoldás... ugyhogy továbbra is, ha valaki tud jó megoldást a problémára, akkor légyszi írja meg![ Szerkesztve ]
-
martonx
veterán
konkrétan én sem, de legyünk már egy csöppet találékonyak. A CKEditor, meg minden hasonszőrű plugin létrehoz egy rakás DOM elemet.
Ezek közül leellenőrzöd a legfelsőt, hogy ott van-e, és ha ott van, akkor létrejött a CKEditor, ha nincs ott, akkor nem jött létre.
Ilyen egyszerű.Én kérek elnézést!
-
Sk8erPeter
nagyúr
Azért nem ártott volna, ha valami konkrét kódot is mellékelsz, hogy lássuk, mivel próbálkoztál...
A problémádat meg azért nem értem, mert egyrészt lehet a .ckeditor()-nak callback-et is átadni, vagyis akár egy "globális" változót is be lehet állítani a callback-ben, hogy OK, inicializálva (igaz, nem szép), plusz van az a megoldás, amit martonx javasolt, ezenkívül én akárhányszor inicializálom itt a CKEditort, nem kapok rá hibát (csak gyorsan összetákolt kód, úgy nézni):
http://jsbin.com/uyizov(katt a kódhoz a jobb felső sarokban lévő "Edit in jsbin.com"-ra!)
Itt kéne lennie annak a hibának, amit írtál?
Amúgy melyik verziót használod, nem lehet, hogy valami régebbit?Szerk.: a CKEditor oldaláról közvetlenül belinkelt kódok néha Forbiddent kapnak, gondolom pár betöltés után (nem következetesen!) tiltják a direkt linkelést, szóval ne várjátok, hogy mindig működik ez a kód... nincs semmi CDN-je vagy github-oldala vagy hasonlója sem a CKEditornak, így kénytelen voltam így linkelni...
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ezek szerint nem olvastad el/értelmezted, amit a "Szerk." után írtam...
Előbb gondold végig, és utána mondd, hogy "de a tiéd nem működik". De, működik.Ha Chrome-ban megnézed, a scriptek kapnak egy-egy forbiddent:
GET http://nightly.ckeditor.com/7582/ckeditor.js 403 (Forbidden)
GET http://nightly.ckeditor.com/7582/adapters/jquery.js 403 (Forbidden)Így nyilván nem is az elvártak szerint fog működni, erre írtam, hogy nincs CDN vagy hasonló hely, ahonnan közvetlenül linkelhetném, mert a hivatalos honlapról tiltják a direkt linkelést...
Próbáld ki saját gépen, ott nem fogja "újratölteni" az oldalt. Bár újratöltést nem is látok, legfeljebb azt, hogy a formot elküldi szerveroldalra.Na, de most találtam egy ILYEN kerülő megoldást, a cím mögé írtam, hogy .nyud.net, és úgy linkeltem direktben, így működni látszik (persze lehet, hogy ez is csak egy ideig, nem vágom):
http://jsbin.com/uyizov/2Nem "tölt újra" semmit...
Szerk.:
De vazze, most nézem a kódodat, amit belinkeltél:function formotide(){
var szerkesztofelulet = '<form id="admin_konyv_szerkeszt"><h2>A ... szerkesztese</h2><textarea id="ckeditor" name="konyv_leiras" rows="30" cols="80">Bla bla</textarea><br /></form>';
$('#tartalom').html(szerkesztofelulet);
$('#ckeditor').ckeditor();
}
function maside(){
$('#tartalom').html('szerkesztofelulethelyett');
}Itt minden egyes alkalommal, amikor meghívódik a formotide() függvény, létrehozod a már létező formot újra és újra... mégis mit vársz akkor, miért működne már jól?
Elég egyszerű leellenőrizni, hogy már létezik-e a form, pl. így:if($('#admin_konyv_szerkeszt').length > 0){
....
}[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
"Már hogy ne töltené újra az oldalt? Megnyomod az Initalize gombot... utána nem tudod mégegyszer megnyomni, mert eltűnik, tehát újra kell töltenem az oldalt, hogy megint megnyomhassam. Így pedig persze hogy nincs probléma."
Még mindig nem értetted meg, amiről korábban vakerásztam... Mivel forbiddent kap a jsFiddle a scriptek include-olásakor, ezért a CKEditor rohadtul nem fog működni... Tehát érvényre sem jut, amit ott írok, dob valami exceptiont, és nem lesz return false, hanem továbbmegy az action attribútumban megadott feldolgozó fájlra.
A kódodat nem tanulmányoztam túlzottan, de akkor sem értem, mi a francnak cserélgetni a div tartalmát mindig pontosan ugyanarra, egyáltalán mit akarsz ezzel?
Ha már létezik a form meg a benne lévő div, meg a textarea, meg minden, akkor miért nem csekkolod, hogy megvan-e már?
Csak a textarea tartalmát akarod lecserélni, vagy mi a célod?Szerk.:
most utólagos engedelmeddel viszont felhasználtam az oldaladról a scriptek elérési útját.
Itt van a működő változat, aminek NEM szabad "újratöltődnie", elküldenie a formadatokat az incializáló gomb lenyomása után:
http://jsbin.com/uyizov/3
Lényeg: első inicializálás után akárhányszor nyomogathatod az inicializáló gombot, mindig ugyanaz a függvény fut le, ahol az inicializálás megtörténik, mégsem okoz SEMMI gondot...... mivel eleve lekezelték ezt az esetet.
Így már érted?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Ja szóval az a gond, hogy "on-the-fly" szeretnél mondjuk generálni egy ilyen szerkesztőt, mert mondjuk valami in-place-editor-féleség lenne a szerkesztéshez: ezt pedig most úgy oldod meg, hogy mondjuk van egy gomb, hogy szerkeszt, ekkor legenerál mondjuk egy divbe egy formot, aztán mondjuk ha meggondolta magát a júzer, akkor leszedi a szerkesztést, és kicserélődik a div tartalma valami másra...aztán van, hogy mégis akarja szerkeszteni, és akkor megint visszapakolod a formot. Ugye?
Akkor tehát mégis igaz, amit javasoltam korábban, hogy csekkolhatnád azt is, hogy egyáltalán jelen van-e a szerkesztőhöz tartozó textarea (vagy a form - mutattam a length ellenőrzését, ezt minden elemre meg lehet csinálni), ha igen, akkor eltüntetéskor nem egyszerűen törlöd a div tartalmát, hanem destroy-olod a már megnyitott CKEditort, és csak utána írod felül a div tartalmát. De destroy-olni is nyilván csak akkor kell, ha már inicializálva van... ez viszont megint csak nem okoz problémát, mivel csak akkor jelenik meg a lehetőség az eltüntetésre, ha már egyszer inicializáltad is a CKEditort. Az inicializáló gomb meg mindig ugyanazt csinálja. Ezért nem értem, miért nem így közelíted meg a kérdést - már ha érthető, mire akartam kilyukadni.
Sk8erPeter
-
Sk8erPeter
nagyúr
Szívesen!
Amúgy most nézegettem, meglepően gyászos a CKEditor jQuery-változatának dokumentációja meg egyáltalán a lehetőségei, az az adapter lószar. Egyelőre továbbra is a plain JavaScript változatot nyomatják, amivel még nincs gond, de ettől még gondolhatnának a jQuery-t már előnyben részesítő fejlesztőkre is.
Én a CKEditort kedvelem a legjobban az ilyen jellegű szövegszerkesztők közül, de azért a TÖMÖRÍTVE (!!) 366 KB-os méret enyhén szólva is nevetségesen nagy. Ideje lenne modularizálni kicsit ezt a plugint, vagy kezdeni vele valamit (átírni jobbra, vagy nem vágom), mert ez így tényleg durva. Akkor már legalább biztosítsanak hozzá CDN-t.Sk8erPeter
-
Sk8erPeter
nagyúr
Igen, a CKEditor mérete azért már botrány. Nem néztem át tüzetesen a kódot, mert nem volt kedvem, de feltételezem, a sok belepakolt HTML-tartalom miatt van többek közt, amik stringként vannak benne, ömlesztve... Példa a tömörített változatból, csak kiragadva egyet:
n.push(' onkeydown="return CKEDITOR.tools.callFunction(',u,', event);" onfocus="return CKEDITOR.tools.callFunction(',v,', event);" '+(c?'onclick="return false;" onmouseup':'onclick')+'="CKEDITOR.tools.callFunction(',s,', this); return false;"><span class="cke_icon"');, ehhez hasonlókból rengeteg van.
A jQuery-s változathoz viszont szerintem nem adapter kellene, hanem egy komplett átírás, ami mondjuk nyilván nem egy kétperces meló, de a jQuery annyi mindent lekezel eleve, hogy így sok-sok szutykot ki lehetne dobálni a pluginből.Amúgy nem csak a dokumentációval van a baj, hanem a jQuery-vel elérhető metódusok, stb. mennyiségével (lószar).
Sk8erPeter
-
martonx
veterán
-
-
Sk8erPeter
nagyúr
"én abban a verzióban onclick-ekkel írtam be [....] nomeg itt erre ugrani szoktak, hogy nem szép megoldás"
Nem "ugrani" szoktunk, hanem jelezni, hogy ez úgy nem könnyen karbantartható, meg szemantikai keveredés a kódban.A JSONP-s kérdésre meg igen nehéz lenne megmondani a tutit kód nélkül (ahogy általában, itt sem ártana legalább egy példakód, hogy mit használsz...).
========
(#1088) Lacces : közben PHP topicban kitárgyaltuk, hogy az allow_url_fopen valszeg false-ra van állítva a szerveren, amin próbálkozol.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
$data['hiba'] = '0';
Ennek a '0' stringnek semmi értelme. Akkor már legyen "rendes" int, vagy boolean érték (true/false).Ezenkívül szerintem a kicsit nehézkesebb hibakezeléssel bíró $.get(), $.post() függvények helyett komplexebb esetben jobban járnál a sima $.ajax() függvénnyel, megfelelően felparaméterezve. Szerintem legalábbis a kódban egyértelműbben néz ki. Sőt, ha már JSON, akkor miért nem használod a jQuery.getJSON() függvényt? (JSONP-re is használható, lásd a példát)
A PHP-s részre: szerintem az 'egybenminden'-nél nem nagyon van értelme, hogy json_encode-old is, ha a végén úgyis json_encode-olod az egészet.
Az application/javascript NEM jó MIME-type, ez a jó:
application/jsonA debuggoláshoz használd a console.log()-ot, pl.:
console.log('valasz:');
console.log(valasz);A többire: olyan hosszan írtál, hogy őszintén szólva számomra már zavaros volt, hogy A és B szervernél hova küldözgeted, de az sem világos, hogy mi értelme van annak, hogy lekérsz adatokat a másik szervertől, majd miután ez megtörtént, azonnal vissza is küldesz adatokat ugyanannak a szervernek (vagy nem ugyanannak?), csak akkor már POST-metódussal. De lehet, hogy csak számomra kavarodás, nem nagyon volt kedvem még egyszer átolvasni és végiggondolni.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Hmm, nem tom, a MIME-type témában akkor melyik az igaz, de akkor lehet, hogy úgy van, ahogy írod.
"Alerttel oldottam meg, és az alapján a válasz rendesen megérkezik, a gond, hogy utána a postnál mintha nem menne el :S"
Ezek helyett a "mintha" szavak helyett mi lenne, ha meggyőződnél róla? Pont a hibakezelés egyszerűsége miatt ajánlottam a $.ajax() függvényt. A console.log-ot pedig azért ajánlottam, mert jóval értelmesebben lehet vele kiíratni az adatokat, pl. ha objektum érkezik (és az fog), akkor elég ezzel kiíratni a kapott választ, és kibontható formában tekintheted meg a konzolon (F12, vagy Ctrl+Shift+I). Akkor láthatod, minden szükséges rész megvan-e.Itt mutat példát a $.post()-tal való válasz- és hibakezelésre:
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.post("example.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
// perform other work here ...
// Set another completion function for the request above
jqxhr.complete(function(){ alert("second complete"); });Szerintem ez jóval ocsmányabb, mintha "egyben" lenne az egész az $.ajax() függvényben.
Mindenesetre használd ezeket a hibakezelő függvényeket is, hogy megtudd, hogy hol lehet potenciális hiba.
Meg ha nem mondod meg, mit kell elpostolni, akkor nem tudunk segíteni.Ezenkívül martonx már említette, hogy a POST-metódussal parák lehetnek távoli szerver felé, bár meg kéne tudnod, hogy egyáltalán a szerverhez érkezik-e bármi, pl. úgy, hogy naplózod a szerveren a bejövő kéréseket debuggolás erejéig (pl. adatbázisba vagy fájlba, most a lényeg szempontjából mindegy).
Sk8erPeter
-
Sk8erPeter
nagyúr
Még mindig nem írtad.......console.log() segítségével látszik a valasz.egybenminden?
Azt nézd meg a konzolon, írasd ki ennél a résznél:
function(valasz){
console.log('valasz:');
console.log(valasz);
// ......................
}Lehet akár karakterkódolási vagy egyéb para is, nem derül ki, amíg ezekről nem írsz infót. Beszélgethetünk még általánosságban, de akkor már inkább próbáljuk kideríteni az okokat!
Egyébként PHP-ben létezik a serialize() függvény is, amit vissza lehet alakítani, tehát még mindig nem biztos, hogy indokolt az a plusz egy json_encode... bár a lényegen ez nagyon tényleg nem változtat.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Én elsőként azt próbálnám ki, hogy csak simán, mindenféle tömörítés és mindenféle json_encode-olás nélkül küldeném át az adatokat, tömbös formában, ahogy van, úgyis az egészet aztán json_encode-olod, derüljön ki, úgy működik-e. Csak akkor tömörítgess, serializálj, stb., miután ez egyáltalán sikerült, tehát először ne a sávszélkímélésre koncentrálj, hanem arra, hogy működőképes legyen.
Sk8erPeter
-
martonx
veterán
Az apache-ok lelki világát annyira nem ismerem mostanában tökéletesen átszoktam (hál'istennek) IIS-re. IIS-en viszont van olyan beállítás, hogy ha túl hosszú egy GET/POST/akármi, akkor simán figyelmen kívül hagyja az IIS a kapott adatot. Ilyenkor csak annyit látsz, hogy az adat elment, viszont nincs mit debugolni sem rajta, mert az alkalmazásig már nem is továbbítja az IIS.
Lehet, hogy it is valami ilyesmi gond lesz? Szóval én lehet szétnéznék az Apache lelki világában, ki tudja hogy van bekonfigolva a hoszting cégnél?Én kérek elnézést!
-
Sk8erPeter
nagyúr
De, de elvileg pont ilyenekre való az .on() függvény. Pl. jövőben létrejövő (pl. AJAX-szal betöltött) elemek click eventjére kötsz eseménykezelőt.
Annak működnie kéne, nem feltétlenül kéne a .load() callback-jébe rakni, de nehéz megmondani, mit b@szott el.[ Szerkesztve ]
Sk8erPeter
-
-
Karma
félisten
A .get se fog neki távoli szerverről adatot lehúzni. Erre kéne a JSONP (mint fel lettem világosítva korábban én is a topikban ).
Mondjuk nem is értem, miért a frontend csinál ilyet, és miért nem a backend.
Ezért se értettem a JSONP funkcióját sokáig.[ Szerkesztve ]
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
Új hozzászólás Aktív témák
- Samsung Galaxy S24 - nos, Exynos
- Mobilinternet
- WoW avagy World of Warcraft -=MMORPG=-
- Házimozi haladó szinten
- Milyen TV-t vegyek?
- Honda topik
- No Voice in the Galaxy
- gban: Ingyen kellene, de tegnapra
- KERÉKPÁR / BRINGA / ALKATRÉSZ beárazás
- Call of Duty: Modern Warfare III (2023)
- További aktív témák...