- LG LCD és LED TV-k
- MediaTek lapkával érkezhet a következő Samsung csúcstablet
- HP notebook topic
- Raspberry Pi
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- NVIDIA GeForce RTX 4060 / 4070 S/Ti/TiS (AD104/103)
- Milyen TV-t vegyek?
- Amlogic S905, S912 processzoros készülékek
- Milyen notebookot vegyek?
- Apple notebookok
Hirdetés
-
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.
-
Demót kapott a Steel Seed (PC)
gp A Steam Next Fest keretén belül bárki kipróbálhatj a készülő játékot.
-
Spyra: nagynyomású, akkus, automata vízipuska
lo Type-C port, egy töltéssel 2200 lövés, több, mint 2 kg-os súly, automata víz felszívás... Start the epic! :)
Új hozzászólás Aktív témák
-
Karma
félisten
válasz
martonx #2699 üzenetére
Egy jobb megoldás a reviver paraméter felhasználásával
Bár azt nem tudom, hogy a böngésző support milyen alá... MDN-en és MSDN-en is le van dokumentálva.
[ Szerkesztve ]
“All nothings are not equal.”
-
Muton
addikt
válasz
martonx #2699 üzenetére
Köszönöm mindenkinek!
Jó ötletet adtál, ha tud kellően nagy számot kezelni, akkor mehet a dátum milisec-ben számként, és az egy valóban szám adattagja az objektumnak meg stringként (azt nem kell lokalizálni, csak kiírni)
trisztan94: az a baj, hogy nem tudom, hogy melyikre nyomjam. ha tudnám, akkor simán dátumot tudnék belőle csinálni. egy adatlap változott értékeiről van szó. azt sosem tudom, hogy mi fog a json stringben jönni, és mivel van szabad szöveges mező is, amibe begépelhet a kedves user egy json stringet, amit meg perssze nem kell visszaállítani semmivé sem
megpróbálom még Karma megoldását ha számként nem megy át, vagy ha minden kötél szakad, akkor a gyalog megoldás B tervként
Muton#2316 - $z@r a drop >_<
-
Karma
félisten
Ím egy fiddle a reviver alapú megoldáshoz.
“All nothings are not equal.”
-
TomyLeeBoy
tag
válasz
TomyLeeBoy #2696 üzenetére
Értem. Próbálkoztam és keresgéltem a válaszod alapján de nem sikerült megtalálnom a megoldást. Az ajaxal meghívott tartalomban lenne egy jquery animáció, de itt nem működik semmilyen, a szülőoldalon deklarált js funkció. Próbálkoztam csak alap "alert" tartalmű funkciókat meghívni az ajaxal betöltött oldalon, de valamiért nem fut le semmi sem. A szülőoldallal egyidőben betöltött tartalmakban minden helyesen működik.
Az idő sebessége: 1s/s
-
martonx
veterán
válasz
TomyLeeBoy #2704 üzenetére
Nem, nem érted
Kérünk tőled egy jsfiddle példát, hátha azon keresztül szemléletesebb tudna lenni a dolog, és megértenéd.Én kérek elnézést!
-
Karma
félisten
válasz
martonx #2705 üzenetére
Mondjuk egy ilyen, random HTML tartalmat betöltő AJAX-ot nem triviális JSFiddle-be átvezetni.
Szerintem már kódrészletekből is ki lehetne indulni (AJAX hívás, animáció indítása, az animált elem HTML-je, a betöltőtt HTML anyag), de vakon abszolúte semmit azontúl, hogy az elképzelés is rossz.
[ Szerkesztve ]
“All nothings are not equal.”
-
Muton
addikt
köszönöm a segítséget. végül a dátum számként millisec-ben verzió volt a befutó a szabad szöveges mező miatt, amibe ha dátumot ír, akkor abból ne csináljunk lokalizált dátumot.
de a probléma jó volt arra, hogy megtanuljam, hogy a json.stringify-parse csak nem kezel csak számot és stringet
Muton#2316 - $z@r a drop >_<
-
trisztan94
őstag
Sziasztok!
Chrome kiegészítővel gyűlt meg a bajom. (tudom, hogy ez nem feltétlenül jQuery, de több helyen is használom benne, így ide írom)
Van egy "eventPage.js" background page-em és egy "feldolgoz.js" content scriptem. A feldolgozó script kiszed pár adatot az aktuális oldalból, majd egy tömbként átküldi a background page-nek, így:
var i = 0;
$('.szovegbox_kn tbody').each(function () {
var $cegszam = $(this).first("tr").find("td:nth-child(5)").html();
var $url = $(this).first("tr").find("td:nth-child(4) a").attr("href");
var cegszamok = new Array();
if ($cegszam !== undefined) {
cegszamok[i] = $cegszam.replace(/\s/g, '');
chrome.runtime.sendMessage({
cegszam: cegszamok[i]
});
//location.replace("http://www.opten.hu/loadpage.php?dest=CTTVCK&lang=&cid=" + cegszamok[i]);
i++;
}
});ugye itt a lényeg maga a message küldés:
chrome.runtime.sendMessage({
cegszam: cegszamok[i]
});Ezt a bejött message-et feldolgozza a background page, így:
var cegszam = request.cegszam;
if (cegszam !== undefined) {
var newURL = "valami.hu/index.php?q=" + cegszam;
chrome.tabs.create({
url: newURL
});
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo) {
if (changeInfo.status === 'complete') {
window.setTimeout(function () {
chrome.tabs.remove(tabId);
}, 3000);
}
});
}Ugye itt az történik, hogy készít egy új lapot a kiegészítő a böngészőben, betölti az adott linket, ha betöltött a megnyitott lap akkor vár 3mp-et és bezárja. Azt, hogy mi értelme van ennek hagyjuk, "vállalati titok" (titoktartásit írtam alá)
Amit meg szeretnék oldani:[/B
Jelenleg úgy működik, hogyha a feldolgozó script-em 100 olyan adatot talált, akkor mind a 100 lapot EGYSZERRE nyitja meg a böngésző. Ez nyilvánvalóan nem jó, mert behal a chrome.
Szeretném azt, hogy várjon mindig 6 másodpercet a feldolgozó scriptem mielőtt elküldené az adatokat a background page-nek. Most biztos, hogy mindenki arra gondol, hogy én hülye miért nem setTimeout-tal csinálom. Kérem szépen több féle képpen is próbáltam:
A feldolgoz.js fájlban: Az egész .each() elé, az .each()-en belül, az if() elé, az if() belsejébe, a chrome.runtime.sendmessage köré.
A background page-be: a request köré, az if köré, az if belsejébe, a tabs.create köré.
Sehogy sem működik, igaz, megvárja a setTimeout-ot, de akkor is egyszerre nyitja meg a lapokat. Olyan, mintha letárolná az összes megnyitandó oldalt és amikor végzett a feldolgoz fájlom, akkor az egész tömböt megnyitná, vagy nem tudom.
tl;dr:
Egyesével szeretném megnyitni, 10mp késéssel a lapokat, majd miután bezárta azt a böngésző, megnyitni a következőt.https://heureka-kreativ.hu
-
Sk8erPeter
nagyúr
válasz
trisztan94 #2709 üzenetére
http://developer.chrome.com/extensions/event_pages.html#transition
"If your extension uses window.setTimeout() or window.setInterval(), switch to using the alarms API instead. DOM-based timers won't be honored if the event page shuts down."
Szóval sztem ami neked kell:
http://developer.chrome.com/extensions/alarms.html"Use the chrome.alarms API to schedule code to run periodically or at a specified time in the future."
Sk8erPeter
-
trisztan94
őstag
válasz
Sk8erPeter #2710 üzenetére
nöööm jó
Ez csak a megnyitást késlelteti, de valamiért úgy véli az extension, hogy az ÖSSZES lapot EGYSZERRE szeretném megnyitni. Olyan, mintha lementené a megnyitandó címeket egy tömbbe és amikor bezárult a kapcsolat, akkor az összes lapot egyszerre nyitja meg
https://heureka-kreativ.hu
-
Polesz
addikt
Egy érdekes kérdéssel fordulnék a nagyérdeműhöz:
Adott egy form amiben ki lehet választani több embert és egyéb paramétereket állítani. Ezt ajaxForm segítségével fel is tudom dolgozni. A probléma ott kezdődik, hogy ha 4-nél több embert szeretnék egyszerre kiválasztani akkor a háttérben dolgozó php script 30 másodperc után időtúllépéssel elszáll. Ez természetes.
Erre kitaláltam hogy mi lenne ha minden egyes ember után meghívnám a kívánt ajaxForm-ot és akkor csak egy-egy lekérés fut egyszerre.
A jquery .each() erre pont jó lenne, de nem tudom hogy a paramétereket hogyan lehetne menetközben manipulálni (minden adat marad ami eddig volt és az emberke sorszámát adom át külön) a formból. Valószínűleg minden egyes kérés előtt nekem kellene összeállítani a listát?
Aki csinált már ilyet, vagy van valamilyen ötlete azt megköszönném.
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.
-
-
Polesz
addikt
válasz
Peter Kiss #2713 üzenetére
Jó kérdés, a logokban látszik hogy 30 mp után megáll a script ami ajaxForm-mal lett meghívva. De már más oldalon is láttam ilyen időtúllépésre vonatkozó bejegyzést.
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.
-
Karma
félisten
-
Polesz
addikt
A válasz martonx-nek is:
A PHP scriptet én írtam és sajnos tényleg eddig tart. TCPDF segítségével rakok össze PDF oldalakat. Egy-egy embernek 16 oldalas dokumentumot. Egy ilyen kb 7 mp-ig tart. Ezért 4 emberig még jó vagyok a 30 mp-es korlátban, de 5 embernél már általában túl lépem, ezért gondoltam hogy egyesével hívom meg a scriptet és akkor nincs gáz.
Sajnos akárhogy próbáltam optimalizálni egyszerűen ennyi ideig tart. Ezt nem tudom lejjebb vinni sehogy.
A php.ini-re ránézek, de szerintem egyszerűbb lesz egy .each() ami emberenként hívja meg a scriptet. Ennek még ma utána járok és megcsinálom
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.
-
Karma
félisten
Így más, azt hittem adatbázis van a háttérben
Most néztem, a TCPDF oldala is írja a php.ini módosításokat.“All nothings are not equal.”
-
martonx
veterán
-
fordfairlane
veterán
TCPDF-et nem tudod meghívni a parancssorból? Mert akkor valami aszinkron megoldás lenne jó. Parancssori végrehajtás új threadbe, minden PDF generálásánál. Tudom, hogy PHP-ban ez nem triviális feladat, de még mindig jobb, mintha a PHP egy szálon fut a végtelenségig.
[ Szerkesztve ]
x gon' give it to ya
-
Polesz
addikt
válasz
Cathfaern #2724 üzenetére
Tényleg nem tökéletes (pár dolgot át kell dolgoznom az eredeti html-ben), viszont veszettül gyors. A TCPDF-hez képest villám. 1-2mp-t kell várni maximum a futására azonos feltételek mellett ami eddig 7mp volt.
Köszönöm a tippet!
Elméletileg nincs különbség elmélet és gyakorlat között. Gyakorlatilag van.
-
Cathfaern
nagyúr
Ha már sebesség. Tud valaki olyan listás plugint, ami:
1. Gyors. Nem csak a működésre értem, hanem magára az inicializálásra is. Vannak oldalak, ahol 4-5 lista is van, és a jelenlegi jqgriddel borzalmasan lassan töltődnek be ezek (akkor is, ha 0 adat van bennük)
2. Funkcioniltás terén tud legalább oszlop szerint rendezést és csoportosítást (és összesítést)
3. De jó lenne ha tudna beépített szűrést is, illetve oszlopok ki-be kapcsolására lenne lehetőségSzerk: ez egyben fontossági sorrend is, hiába bármi funkció, ha belassítja az oldalt... jqgrid is nagyon sok mindent tud, de borzalmasan lassú az inicializálása.
Szerk2: Félreértések elkerülése végett, ez nem sima weboldal, hanem backoffice rendszer, és mindenképp kellenek ilyen szűrhető/rendezhető listák, és az is elkerülhetetlen, hogy ennyi kerüljön egy oldalra[ Szerkesztve ]
-
martonx
veterán
válasz
Cathfaern #2729 üzenetére
Ez vajon biztosan jqgrid hiba, azaz lassan inicializálódik a jqgrid, vagy lassan jönnek meg az adatok?
Én mostanában jqwidget-re tértem át, amellett hogy maga a library ba....tt nagy, de a jqxgrid egészen jó, legalábbis jobbak a tapasztalataim vele, mint a jqgrid-del.
Amúgy meg ott van a kendoUI, bár annak elég horror ára van, de csupa jót hallottam róla, és ismerve a mögötte lévő Telerik-et, vérprofi csapat fejleszti.Én kérek elnézést!
-
Karma
félisten
válasz
Cathfaern #2729 üzenetére
A jqgriddel nekem is ilyen tapasztalataim voltak anno, aztán az lett a vége (céges parancsra), hogy Tablesorterrel + a jqgrid CSS-eivel csináljunk táblázatokat... Nem követendő példa
Ha most ülnék neki ilyesminek, a DataTablesszel kísérleteznék.
“All nothings are not equal.”
-
Cathfaern
nagyúr
válasz
martonx #2730 üzenetére
Ha localhoston fut minden, és 0 sort kell megjeleníteni a jqgridnek, akkor is lassú
Maga az inicializás tart sokáig, amíg felépíti magát.
Erre a jtable-re ránézek, szűrő kevésbé probléma, mert van saját megoldás is rá, csak egyszerűbb lett volna ha azt nem kell külön karbantartani.
Karma:
Azért az ütős hack -
Lacces
őstag
Hali,
Van egy problem az ajaxozással:
function refreshBet() {
console.log('itt bent'+url);
jQuery.ajax({
'url': url,
'type': 'post', 'data': {'offset': getOffset()},
'cache': false,
'success': function(html) {
jQuery('#ajax-bet-grid').replaceWith(html);
}
});
}
refreshBet()-ben vagyok, url is megvan, szabályos /work-event-....
getOffset() is visszatér értékkel.
Szóval hiba nincs, nem kapok a Chrome és FireFox fejlesztői eszközeitől semmilyen hibaüzenetet.És mindezek ellenére, egy deka ajax választ sem kapok...
És nem tudom, hogy miért... van alakinek erre ötlete?
-
Sk8erPeter
nagyúr
Van még egy pár callback. Nem látom a hibakezelésedet, pl. 'error' callback. De van 'complete' callback is, ami függetlenül a hibától vagy sikertől, lefut. Ott például szintén végrehajthatsz ellenőrzéseket. Aztán van még 'statusCode', 'timeout'.
Habár elvileg a fejlesztőpaneled konzolján is látnod kellene, mi a helyzet.[ Szerkesztve ]
Sk8erPeter
-
Karma
félisten
válasz
Sk8erPeter #2735 üzenetére
Amellett a Network panelen is látszódnia kéne, hogy mi volt a konkrét kérdés, és volt-e válasz.
“All nothings are not equal.”
-
Sk8erPeter
nagyúr
Ja, nem konzolt akartam írni, hanem azt. De a konzol panelen is lehet logolni az XMLHttpRequesteket, például Chrome-ban és az új Blinkes Operánál ez a beállítás: "Log XMLHttpRequests". Aztán kattintásra asszem ez szintén a Network fülre visz, a megfelelő XMLHttpRequesthez.
[ Szerkesztve ]
Sk8erPeter
-
Lacces
őstag
válasz
Sk8erPeter #2735 üzenetére
Aha, akkor ezeknek előbb utána olvasok. Én megragadtam a console.log() szintjén.
-
Lacces
őstag
válasz
Sk8erPeter #2735 üzenetére
Amúgy vannak még jól bevált jQuery Debug módszerek? Valamilyen online gyűjtemény?
Most ahogy nézegettem neten, láttam sok módszert, ebből a fele most működött.
Mert amiket az előbb felsoroltál, én így eddig sosem alkalmaztam, és talán sosem alkalmaztam volna, ha nem írod le(akármennyire szomorú tény)
-
Sk8erPeter
nagyúr
Konkrétan mikre gondolsz? A fejlesztőpanel megismerése már önmagában is sokat segít.
Pl. lehet breakpointokat elhelyezni a scriptedben.
Van tényleg sok online forrás a Firebughoz kötődő eszközökkel (pl. gyors keresés alapján ez, bár speciel én a Firebugot kevésbé használom, de jó), meg amit Karma írt a JS topicban, NetBeans JavaScript Debugger, Eclipse-ben JavaScript debuggolása, stb.Sk8erPeter
-
Lacces
őstag
válasz
Sk8erPeter #2740 üzenetére
Jó, okés azok. De most itt azok sem jeleztek semmit.
Igazából olyanra gondoltam, mitn amit te mondtál error, meg függvények amiket te írsz JS-ben segítségként:
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
this.addEventListener('readystatechange', function() {
console.log(this.readyState);
}, false);
open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);Ez nekem most segített
.
És köszönöm a sok linket
. De amúgy ezt be lehetne tenni az 1.hsz-be is, nem?
[ Szerkesztve ]
-
Sk8erPeter
nagyúr
válasz
martonx #2745 üzenetére
Mondjuk speciel jelen esetben a JS-debuggolásra vonatkozó linkek berakására célzott.
Kezdőknek talán nem haszontalan, bár elvárható lenne, hogy az ember ismerje meg azokat az eszközöket, amiket használ, például a böngésző fejlesztőpaneljének ismerete (még ha nem is a legbehatóbban, de) webfejlesztőknél elég alapvető (bár ezt egy normálisabb e-book, rendes könyv, vagy valami tutorial csak megemlíti már, mint látható a Guglis pár másodperces keresésből
).
Sk8erPeter
-
Muton
addikt
Heló!
Ha van három tömböm, bennük objektumok id-vel, akkor mi a legszebb módja annak, hogy megnézzem, hogy melyik tömbben van egy adott id-s elem. Simán végigiterálok? Vagy letárolom csak az id-kat külön, é azokon iterálok, vagy írok egy fv-t gyorsan ami implementálja hashset-et, hogy gyorsabb legyen a keresés?
[ Szerkesztve ]
Muton#2316 - $z@r a drop >_<
-
martonx
veterán
Annyit tennék hozzá, hogy javascriptről beszélünk (még ha ez épp jquery topik is, tényleg a kérdésednek mi köze a jquery-hez, tudod-e hogy mi a különbség jquery és javascript között?), azaz nincs hashset.
Mivel konkrét példát nem írtál és nem is fogsz, így a legjobb megoldást is rád bízom. Általánosságokról beszélgethetünk, mint pl. iterálni mindig lassú.Én kérek elnézést!
-
Karma
félisten
Új hozzászólás Aktív témák
- Horgász topik
- Politika
- Kerékpárosok, bringások ide!
- LG LCD és LED TV-k
- Xiaomi AX3600 WiFi 6 AIoT Router
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Motoros topic
- Nők, nőügyek (18+)
- MediaTek lapkával érkezhet a következő Samsung csúcstablet
- HP notebook topic
- További aktív témák...
- 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
- Samsung Galaxy A71 128GB, Kártyafüggetlen, 1 Év Garanciával
- Használt iPad Pro 11" cellular (1. gen) - 256GB + Logitech billentyűzetes tok + Apple Pencil (USB-C)
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával