- Véleményes teszt bizonygatja mennyit ér a Macbook Neo 8 GB RAM-ja
- Vezeték nélküli fülhallgatók
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- E-book olvasók
- Új termékkel és áremeléssel reagál a memóriahiányra a Raspberry Pi
- Harminc százalékos áremelésnél állhat meg az Intel
- Vezeték nélküli fejhallgatók
- 5.1, 7.1 és gamer fejhallgatók
- Vezetékes FÜLhallgatók
- Soundbar, soundplate, hangprojektor
Új hozzászólás Aktív témák
-
Mr Dini
addikt
válasz
slice14
#6308
üzenetére
Igen, valahogy így gondoltam.

Viszont, JS-ben (és Javaban) az a "trend", hogy változónevet csak spec. esetekben kezdünk nagy betűkkel. S a második szótól kezdve nagybetűzünk csak. Így pl. a Unixtime helyett a unixTime a "szebb". Persze ez nem sokat változtat a kódon, csupán könnyebben értelmezhetővé teszi a más programozók számára.
Illetve a Unixtime változó felesleges, mert inicializálod, adsz neki értéket, majd rögtön át is másolod a price1 változóba. Csak feleslegesen fogyasztja a memóriát. Mehet a global érték egyből a price1-be.
A harmadik pedig, hogy nagyon hasznos a rengeteg beépített Tasker változó, de amikor lekérdezed az értékét, akkor a Droid meghívja a Tasker adott kódját, az pedig feldolgozza, majd visszaadja a pillanatnyi értéket. Ez is idő. Viszont a JS kód lefutásra elküldésekor a Tasker az összes global(xyz) helyére behelyettesíti az aktuális értéket, s csak ezek után fut le maga a JS. Szóval ha már adott a Javascript, ajánlom figyelmedbe a Date osztályt, amivel szépen le lehet kérni az időt Unix időben.
Egyébként itt az én megoldásom (Figyelj arra, hogy mindegyik kódban MS-ben kértem le a UNIX időt, s a UnixUpdateTime nevű változót olvasom be!):
var interval = 20; // in minutes
if(new Date().getTime() - new Date(parseInt(global('UnixUpdateTime'))).getTime() >= interval * 60 * 1000) {
setLocal('cantaskrun', true);
} else {
setLocal('cantaskrun', false);
}S ha feltételezzük, hogy a UnixUpdateTime lehet üres, vagy valami csoda folytán nem számsorozat, akkor itt egy kicsit biztonságosabb megoldás:
var interval = 20; // in minutes
function getDateFromTaskerVariable(varName) {
if(parseInt(global(varName))) {
return parseInt(global(varName));
}
else {
return 0;
}
}
if((new Date().getTime() - getDateFromTaskerVariable("UnixUpdateTime")) >= interval * 60 * 1000) {
setLocal('cantaskrun', true);
} else {
setLocal('cantaskrun', false);
}És itt az utóbbi kódom rendesen optimalizálva (ezt érdemes élesben használni, a többit csak azért másoltam be, hogy értelmezhető legyen):
var interval = 20; // in minutes
var _0x9479=["\x67\x65\x74\x54\x69\x6D\x65","\x55\x6E\x69\x78\x55\x70\x64\x61\x74\x65\x54\x69\x6D\x65","\x63\x61\x6E\x74\x61\x73\x6B\x72\x75\x6E"];function getDateFromTaskerVariable(_0xb822x2){return parseInt(global(_0xb822x2))?parseInt(global(_0xb822x2)):0}( new Date)[_0x9479[0]]()- getDateFromTaskerVariable(_0x9479[1])>= 60* interval* 1e3?setLocal(_0x9479[2],!0):setLocal(_0x9479[2],!1)A logika az egészben annyi, hogy a Taskernek igyekeztem minél kevesebb számolási feladatot adni (konkrétwn nullát), mivel ezekben a Javascript sokkal gyorsabb és pontosabb. Így a végső eredmény a cantaskrun lokális változóba kerül. Amennyiben letelt az intervallumban megadott idő a két lefutás közt, úgy true lesz az értéke, egyéb esetben pedig false. Azaz a JS után közvetlenül egy Stop Task [HA %cantaskrun eq false] megoldja a dolgot.

Használd egészséggel, s ha nem megy valami, vagy nem világos, akkor kérdezz bátran!

PS: Mivel az összes projektem gyalulásra került egy szerencsétlen user error kapcsán, így elveszett az összes segítő szkriptem. Így a kódot teljes mértékben kézzel írtam, ezáltal tesztelve is lett.

Üdv!
Új hozzászólás Aktív témák
- Tudástár Tasker - AZ Android alkalmazás
- Véleményes teszt bizonygatja mennyit ér a Macbook Neo 8 GB RAM-ja
- Vezeték nélküli fülhallgatók
- Vicces képek
- Mibe tegyem a megtakarításaimat?
- Arena Breakout: Infinite
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Mobil flották
- Witcher topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- E-book olvasók
- További aktív témák...
- Thrustmaster TS-PC Racer Ferrari 488 Challenge Edition & TH8A váltó egyben (PC)
- ASUS ROG Ally X
- Hollyland Vcore - wireless továbbító
- AKCIÓ! MacOS 26! UTOLSÓ GEN iMac 27" 5K i7-10700K 64GB RAM 512GB NVMe Radeon Pro 5700 XT 16GB gar
- MINI ITX, 11L! RTX 5090 FE, AMD 9950X3D, 32GB 6000Mhz CL26(!!) RAM, 4TB PCIe 5.0 Nvme -- BESZÁMÍTÁS!
- Akciós kisWorkstation! Dell Precision 3570 i7-1255U 4.7GHz / 16GB / 512GB / Quadro T550 4GB FHD 15"
- ASUS ROG Z890-E Gaming Wifi lap Intel Core Ultra 7 265KF procival akciós áron garanciával eladó!
- Apple iPhone 12 Pro Max/128GB / Kártyafüggetlen / 12Hó Garancia / Akku:85%
- AKCIÓ! Asrock B450M R5 5600 16GB DDR4 512GB SSD GTX 1080 8GB Zalman T3 Plus ADATA 600W
- LG 45GS95QX - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




