Hirdetés
Új hozzászólás Aktív témák
-
martonx
veterán
válasz
Speeedfire
#223
üzenetére
mondjuk én adatbázis buzi vagyok, én beletenném egy táblába az email címeket, melléjük pedig egy oszlopban jelezném, hogy elküldtük-e.
A js csak annyit csinálna, hogy ajax-al meghívja a kuld.php-t, ami egyenként elkezdi küldeni a leveleket, egyúttal egy sessionbe beteszi a PHP, hogy éppen hol tart a küldéssel.Az ajax hívás kezdetén pedig indítanék egy setinterval-t, ami mondjuk x másodpercenként lekérdezi a PHP által írt session-t, és megjeleníti a sessionben lévő darabszámot.
Így szépen fog látszódni, hogy hány darabnál tartasz, és erre a visszakapott darabszámra bármilyen jquery-s progressbar-t játszva rá lehet húzni.
Mondjuk mindez nem oldja meg a php timeout-ot. Ha valami rendesebb tárhelyed van (vagy van ráhatásod a php.ini-re), akkor azért a php-d akár több 10 percig is futhat.
-
jeges
senior tag
válasz
Speeedfire
#223
üzenetére
ezt úgy lehetne megoldani, hogy a php-kód minden csomag elküldése után küld egy jelet a kliensnek (ez a "jel" aztán megjelenik a kliens valami div-jében). a kliensen mondjuk másodpercenként lekérdezed, hogy mi van a php-kód kimenetén, és ha változás van, jelzed a felhasználó felé, ha meg nincs, akkor valami timeout (mondjuk 15 másodperc) után leállítod a programot.
setInterval() fv alkalmas kliens oldalon az ütemezett lekérdezésrea kódok felépítése valahogy így nézne ki:
js:
1) szöveg küldése a php-nak, php-kód indítása - ez az ajax hívás
2) felület tiltás (modális ablak vagy fedőréteg)
3) ütemezett lekérdezés, mi van a php-kód kimeneti div-jében
4) a. ha a kimenet változik, elküldött levelek újraszámolása, frissítés a felhasználó felé
4) b. ha elértük a 3000-et (100%-ot), örülünk és leállítjuk a kódot
4) c. ha nem értük el a 100%-ot és timeouton túl nincs változás, leállítjuk a futást és megkérjük a júzert, hogy később próbálja újra vagy vegye fel a kapcsolatot a helpdesk-kelphp:
1) a js hívására a kapott szöveg alapján tömbönként elkezdjük kiküldeni a leveleket
2) minden elküldött tömböt tárolunk adattáblában, és minden elküldött tömb után küldünk jelet a kliensnek az elküldött levelek vagy tömbök számáról
3) a. ha végeztünk, leállunk (valami spec "vége" jel a kliensnek)
3) b. timeout - ez asszem automatikus szerver-oldalon (legalábbis php/apache esetében emlékeim szerint van valami automatizmus, ami leállítja a végtelen ciklusba került kódot), de őszintén megmondom, nem tudom most fejből.
Új hozzászólás Aktív témák
- Íme az év legszebb játékai - a Digital Foundry szerint
- Kuponkunyeráló
- Revolut
- Battlefield 6
- Januártól igényelhető a kiskorúak tartalomvédelme a mobilszolgáltatóknál
- Synology NAS
- Örömkönnyek és üres kezek a TriFold startjánál
- Bluetooth hangszórók
- Milyen RAM-ot vegyek?
- Arc Raiders
- További aktív témák...
- Felsőkategóriás Gamer PC-Számítógép! Beszámítás! X870 /R9 9950X / RX 9070XT / 32GB DDR5 / 2TB SSD
- Macbook Air 2018 i5/8gb ram/128Gb
- Eladó Clevo 870 DM/-G
- Dell Latitude 5440 14" FHD IPS Core i5 1345U VPro 16GB RAM 256GB NVME, Magyar Bill, Dell Gar.
- Asztali PC - Gigabyte Z170M - i7-6700K - 32 GB DDR4 - RX550 Pulse 2 GB - 240 GB M2 SSD - fullconfig
- 2x16 GB-os DDR5 5600 MHz memória - PCX garanciával
- AKCIÓ! HP EliteBook x360 830 G7 i5-10210U 16GB 1000GB 1 év garancia
- Bomba ár! Lenovo ThinkPad T480 - i5-8G I 8GB I 1T SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Xiaomi 15 / 12/256GB / Kártyafüggetlen / 12Hó Garancia
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi


