Ukuhlela Okuqhutshwa Umcimbi: Umhlahlandlela Ophelele onezibonelo

Isibuyekezo sokugcina: 15 Okthoba ka-2025
  • Imodeli esebenzayo: imicimbi iqalisa izibambi ku-loop yomcimbi.
  • Imiqondo esemqoka: abathumeli, abemukeli, izinto zomcimbi, nabalaleli.
  • Izicelo: i-interface, ukuxhumana okuvumelanayo kanye nesikhathi sangempela/IoT.
  • Prakthiza: addEventListener, preventDefault, Node.js and tkinter.

Uhlelo oluqhutshwa umcimbi ngomfanekiso

Uhlelo oluqhutshwa umcimbi luyisitayela sokuthuthukisa lapho uhlelo lokusebenza lusabela kulokho okwenzeka eduze kwalo kunohlu oluqinile lwezinyathelo. Esikhundleni sokugijima usuka ephuzwini A uye endaweni engu-B, isofthiwe ilinda imicimbi bese iphendula Uma othile echofoza, idatha iyafika noma isimo sohlelo siyashintsha.

Uma uvela kungemuva lezinhlelo ezilandelanayo, le ndlela ivula uhla olusha lwamathuba okuxhumana okucebile, izinsiza ezilayisha kakhulu, namasistimu acubungula ukusakazwa bukhoma. Ngiphakamisa uhambo oluphelele lwemiqondo, izakhiwo, izinhlobo zemicimbi, ikhodi esebenzayo (i-JavaScript, i-Node.js ne-Python/tkinter) nemikhuba emihle ukuyiqonda kalula.

Kuyini ukuhlela okuqhutshwa umcimbi?

Kule paradigm, ingqondo iqaliswa lapho kwenzeka okuthile okuhlobene: ukusebenzisana komsebenzisi, imilayezo yenethiwekhi, izinzwa, izibali sikhathi, nanoma iyiphi isignali echazwe ngumklami. Leyo “nto” ibizwa ngokuthi umcimbi futhi icupha isibambi esisodwa noma ngaphezulu. equkethe impendulo ofuna ukuyikhipha.

Okubalulekile ukuthi izehlakalo zingenzeka ngendlela efanayo, ngisho nangokufana. Uhlelo lulalela nge-loop yomcimbi eqoqayo, ifake ulayini, futhi isabalalise imicimbi kubamukeli bayo., ukugcina uhlelo lokusebenza luphendula ngaphandle kokuvinjwa.

Uhlelo lwemicimbi, abathumeli kanye nabamukeli

Imiqondo ebalulekile: imicimbi, i-emitters, abamukeli kanye ne-loop

Umcimbi uwukubonakaliswa kokuthi okuthile kwenzekile: chofoza, chofoza kabili, ukuchofoza ukhiye, ukuqedela ukulanda, ukufika kwephakethe lenethiwekhi, ukuvulwa kwewindi, njll. Ngokuvamile iphatha idatha (umthwalo okhokhelwayo) nomongo ochaza okwenzekile, okuvumela ukuthi izinqumo zenziwe kumphathi.

Izingxenye ezikhiqiza imicimbi zibizwa ngokuthi ama-emitters; labo abawaphathayo babizwa ngokuthi abemukeli noma abalaleli. Isixhumanisi phakathi kwakho kokubili sisungulwa ngezindlela zokubhalisa (abalaleli) noma okubophezelayo okubonisa ukuthi yimuphi umsebenzi okufanele wenziwe kuhlobo ngalunye lomcimbi.

Inhliziyo yesistimu iyiluphu yomcimbi. Le loop iqoqa imicimbi elindile, iyihlunge, futhi iyilethe kubalawuli bayo abahambisanayo. Ngenxa yale phethini, uhlelo lokusebenza lungasabela kuzisusa eziningi ngaphandle kokuvimbela isixhumi esibonakalayo noma ukuchitha izinsiza..

Ezimweni ezibonwayo nezamaselula, uzophinda uhlukanise phakathi kwemicimbi eqalwe umsebenzisi (ukuchofoza, ukuhudula, ukuthepha, ukutshekisa idivayisi) nezehlakalo ezizenzakalelayo (ukuvula isikrini, ukucupha isibali sikhathi, ukushintsha ukugxila). Ukwehlukanisa amaqembu amabili kukusiza ukuthi uklame ukugeleza kokusebenzelana okubikezelwe..

Indlela umjikelezo wokuphila womcimbi osebenza ngayo

Singafingqa ukuguquguquka ngezinyathelo ezintathu ezihlanganisiwe. Okokuqala, umcimbi ukhiqizwa (ngomuntu, uhlelo, inethiwekhi noma ihadiwe); leso senzakalo singena esiteshini esivamile (umugqa) ngenkathi iluphu yomcimbi ibukela.

Okwesibili, ukulalela kwenzeka. Abamukeli ababhalisele lolo hlobo oluthile lomcimbi bayawuthola. (ngokwesibonelo, 'chofoza' isilaleli noma isibambi 'sedatha' esokhethi) futhi silungele ukwenza okuthile.

Ekugcineni, ukuphathwa kuyenziwa. Isibambi sicubungula into yomcimbi, sibuza izici zayo (uhlobo, indawo, amanani) futhi sinquma ukuthi senzeni.: Buyekeza i-UI, qinisekisa, sabalalisa, khansela, noma ukhiphe imicimbi emisha ye-cascading.

Izinhlobo ezivame kakhulu zemicimbi

Ngokwenza uzothola imindeni eyaziwayo. Ukwazi ama-nuances ako kukusindisa izinhlungu zekhanda eziningi uma kukhulunywa ngokulungisa iphutha nokusetshenziswa kwezinsimbi.:

  • Igundane noma isikhombi: chofoza, dblclick, mousedown, mouseup, mouseover, mouseout, mousemove, contextmenu.
  • Ikhibhodi: ukhiye, ukhiphe, cindezela ukhiye (ookhiye bezinhlamvu).
  • Iwindi kanye nedokhumenti: layisha, iphutha (uma kulayishwa izinsiza), shintsha usayizi, skrola, i-pagehide/pageshow.
  • Amafomu: okokufaka, shintsha, hambisa, focusin/focusout.
  • Isondo/skrola: Isondo elinedatha yokuskrola evundlile neqondile.
  Yini i-PHP?: Gcwalisa Umhlahlandlela

Ngokungeziwe egameni lomcimbi, into yomcimbi inikeza imininingwane eyengeziwe. Ku-pointer uzoba ne-clientX/pageX kanye ne-clientY/pageY; kukhibhodi uzohlola ukhiye, ikhodi noma izishintshi (shiftKey, altKey, ctrlKey); kumasondo, i-deltaX, i-deltaY ne-deltaMode ukuze wazi iyunithi.

Ukulalela nokuphatha imicimbi ngokusebenza

Kunezindlela ezimbili ezijwayelekile kuwebhu. Enye iwukuchaza izibambi ku-HTML ngokwayo (izimfanelo ezifana nokuchofoza), iwusizo kuma-prototypes noma amacala alula:

<!-- myClickHandler es la función JS que manejará el evento -->
<button onclick='myClickHandler()'>Púlsame</button>
<script>
  function myClickHandler(){
    alert('Hola');
  }
</script>

Enye, ehlanzekile futhi eyingozi kakhulu, ukubhalisa abalaleli abavela ku-JavaScript. I-addEventListener ikuvumela ukuthi ubhalise ngesikhathi sokusebenza futhi unciphise ukubuka ku-logic:

const btn = document.querySelector('button');
const onClick = (e) => {
  console.log('Destino:', e.target);
};
btn.addEventListener('click', onClick);
// Más tarde, si ya no lo necesitas:
// btn.removeEventListener('click', onClick);

Sonke isibambi sithola into yomcimbi. Lapho uzothola i-e.type, i-e.target, izindlela ezingakhanselwa kanye nezibalulekile njenge-e.preventDefault() noma i-e.stopPropagation() ukukhansela ukuziphatha okuzenzakalelayo noma ukumisa ibhamuza.

Isimo esijwayelekile sithwebula inani lokokufaka ngaphandle kokuvuselela ikhasi: ifunda i-e.target.value ngaphakathi koshintsho noma isibambi sokufakwayo futhi uzoba nombhalo obukhoma.

Izibonelo zekhodi ku-Node.js nePython

I-Node.js isebenzisa iphethini enamandla kakhulu yokushicilela/yokubhalisa ngekilasi le-EventEmitter. Ngale ndlela ungakwazi ukuchaza imicimbi yebhizinisi lakho futhi usabele kuyo.:

// Node.js (JavaScript)
const EventEmitter = require('events');
class MiBusEventos extends EventEmitter {}
const bus = new MiBusEventos();

bus.on('saludo', (nombre) => {
  console.log(`¡Hola, ${nombre}!`);
});

// Emitimos el evento con un dato asociado
bus.emit('saludo', 'mundo');

Ku-Python, uma usebenza ngezixhumi ezibonakalayo zedeskithophu, i-tkinter yenza kube lula ukuhlanganisa amawijethi emicimbini. Inkinobho, uhlaka noma iwindi kungahlotshaniswa negundane nezenzo zekhibhodi:

# Python + tkinter
from tkinter import *

def on_key(event):
    print('Tecla:', repr(event.char))

def on_click(event):
    marco.focus_set()
    print('Click en:', event.x, event.y)

root = Tk()
marco = Frame(root, width=120, height=120)
marco.bind('<Key>', on_key)
marco.bind('<Button-1>', on_click)
marco.pack()
root.mainloop()

Uma ukhetha isibonelo esiyisisekelo se-emitter yakho ku-Python (ngaphandle kwe-GUI), Ungalingisa ukubhalisa nesaziso ngohlu lwezici:

class Emisor:
    def __init__(self):
        self._subs = {}
    def on(self, evento, fn):
        self._subs.setdefault(evento, []).append(fn)
    def emit(self, evento, *args, **kwargs):
        for fn in self._subs.get(evento, []):
            fn(*args, **kwargs)

emisor = Emisor()
emisor.on('saludo', lambda: print('¡Hola, mundo!'))
emisor.emit('saludo')

Izakhiwo nezindlela ezisezindaweni ezibukwayo (I-MIT App Inventor nokunye okufanayo)

Amathuluzi okuthuthukisa ibhulokhi yokwakha njenge-MIT App Inventor ayisibonelo esihle sepharadigm eqhutshwa umcimbi. Ingxenye ngayinye (inkinobho, ilebula, isithombe) inezakhiwo, imicimbi kanye nezindlela ukuthi ulawule ngokubona.

Izici zichaza indlela ingxenye "ebukeka ngayo" noma "eziphatha ngayo": usayizi wefonti, ukuqondanisa, umbala, ukubonakala, noma umbhalo. Angalungiswa ekwakhiweni noma ashintshwe ekusebenzeni ukuze avumelane ne-interface. ngokusekelwe ekusebenzelaneni okungenayo noma idatha.

Izindlela ziyizenzo ezichazwe ngaphambilini ingxenye eyazi ukuthi zenziwa kanjani, njengokuhambisa iwindi, ukugxilisa indawo, ukwengeza into ohlwini, noma ukususa umbhalo. Awuzihleli kusukela ekuqaleni: indawo ezungezile zikunikeza ukuthi zilungele ukuzincenga..

  I-OpenAI Codex CLI: Konke odinga ukukwazi mayelana nomsizi wekhodi yetheminali

Kulezi zinhlobo zamaplathifomu, uzophinda futhi uhlukanise phakathi kwemicimbi ezenzakalelayo (isb., uma isikrini siqala) naleyo ecushwa umsebenzisi (ukucindezela inkinobho, ukuhudula, ukuthepha, ukutshekisa ifoni). Lokhu kuhlukaniswa kuyasiza ekuhleleni ukuzulazula nesimo. ngendlela ehlelekile.

I-GUI, CLI, kanye Neqhaza Lohlelo Olusebenzayo

Amasistimu okusebenza athumela imicimbi kuhlelo lokusebenza olunokugxila kokokufaka. Ku-GUI, iwindi ngalinye noma iwijethi ingathola futhi isingathe imicimbi yayo. ngokusebenzisa iluphu yomcimbi yohlelo lokusebenza.

Ngisho nasezinhlelweni zomugqa womyalo, kunezimpawu ezifanayo: inqubo ingase ilinde umsebenzisi ukuthi ayithayiphe bese ucindezela u-Enter ukuze ucabangele isehlakalo "sokufaka okuphelele" okwenzekile. Umehluko omkhulu ukuthi ku-CLI ukugeleza kubonwa njengomugqa, kepha kusalinde imicimbi..

Faka inkanyezi izinhlelo zokusebenza eziqhutshwa umcimbi

Interactive interface yomsebenzisi: Iwebhu, ideskithophu, namadivayisi eselula asabela ngokushesha kukho konke ukuthinta. Okwenziwayo kungokwemvelo ngoba ingqondo isebenza lapho umsebenzisi eyicela khona.

Ukuxhumana okungavumelani: Iziphakeli ze-HTTP, ama-WebSockets, imigqa yemilayezo, nama-microservices asizakala ngemodeli ukucubungula izicelo ezingenayo ngaphandle kokuvimbela omunye umsebenzi.

Ukucubungula kwesikhathi sangempela: i-telemetry, i-IoT, ukuhweba, ukuqapha ingqalasizinda noma ukulawulwa kwezimboni qalisa izenzo ezisheshayo lapho izinguquko zitholwa izinzwa. Umcimbi uyisiqalo esihle sokusabela eqinisweni ngama-millisecond.

Izinzuzo nezinselele okufanele zicatshangelwe

Ohlangothini olukhanyayo, Uzuza ukusebenzisana, ukusebenza kahle kanye nokulinganisa: Ikhodi isebenza kuphela uma idingeka, intambo eyinhloko ayibambeki, futhi ungakwazi ukusabalalisa umsebenzi phakathi kwabaphathi abambalwa abakhethekile.

Ngokubuyisela, Ubunkimbinkimbi bukhula ngenani lemicimbi, abalaleli, nokugeleza okungavumelaniNgaphandle kwedizayini ecacile, ukugcinwa kuyaphazamiseka, futhi izinkinga ezifana nokuhlangana okungahambi kahle noma izibambi okunzima ukuzihlola ziyavela.

Imikhuba emihle yokusebenza nemicimbi

Ukuqamba amagama okungaguquki Kubaphathi (onSubmit, handleClickCancel), gwema ukucabanga okusemgqeni ku-HTML futhi ubeke ukubhalisa endaweni eyodwa nge-addEventListener noma isistimu yemicimbi yohlaka lwakho.

Ivimbela ukuvuza: Isusa abalaleli lapho ingxenye ibhujiswa noma isici se-DOM sinyamalala. ukususaEventListener kuwebhu noma izindlela ezifanayo kuzinhlaka zomdabu nama-GUI.

Iyaqinisekisa kanye nemikhawulo: Sebenzisa i-e.preventDefault() kumafomu uma bengakadlulisi ukuqinisekiswa, kanye ne-e.stopPropagation() lapho ungafuni ukuthi umcimbi udubule namadlozi.

Abashadile ukushicilela imicimbi yesizinda (isb., 'order.created') kanye nokuvumela amanye amamojula ukuthi abhalise kuwo. Lokhu kunciphisa ukuncika okuqondile futhi kwenza kube lula ukuguqula uhlelo lwakho lokusebenza.

Ngaphandle kwengaphambili: izakhiwo namaphethini

Umumo womcimbi awumi kusixhumi esibonakalayo. Ku-backend ungasebenzisa olayini (RabbitMQ, Kafka), abadayisi noma amabhasi angaphakathi kanye izinsiza zamafu njenge-AWS ukuxhumana nama-microservices angavimbeli nangokuqina.

Amaphethini awusizo ahlanganisa Ukuthola Umcimbi (umthombo weqiniso izehlakalo), Umcimbi Udluliselwe Umbuso (ukudlulisa isimo ngemicimbi) noma Okuphumayo (qinisekisa ukushicilelwa okuthembekile okuvela kusizindalwazi). Bonke bathembele esimisweni esifanayo: basabela kumaqiniso..

Izakhiwo zento yomcimbi okufanele uzikhumbule

Ngokungeziwe ku-e.type kanye ne-e.target, kunezinkambu eziwusizo kakhulu. Egundwaneni: clientX/clientY (ngokuphathelene newindi) kanye ne-pageX/pageY (ngokuphathelene nedokhumenti), yona (inkinobho ecindezelwe). Kukhibhodi: ukhiye, ikhodi, nezilungisi ezifana ne-shiftKey, i-altKey, ne-ctrlKey.

Okwesondo, I-deltaX ne-deltaY imaka ukufuduka kanye ne-deltaMode ikhombisa ukuthi amayunithi angamaphikseli, imigqa, noma amakhasi. Uma zihlanganiswe kahle, zikuvumela ukuthi udale ukusebenzisana okunembile nokufinyelelekayo.

  Izinhlobo zemiyalelo ngolimi lokuhlanganisa: umhlahlandlela ophelele

Imicimbi, izakhiwo kanye nezindlela kumongo

Ukuphinda ubuyekeze indlela yokubuka: ingxenye inezakhiwo (ukumisa), imicimbi (kwenzekani kuyo) nezindlela (lokho ekwaziyo ukuthi kwenziwa kanjani)Lo zintathu uvela Ku-App Inventor, izinhlaka zewebhu, nama-SDK omdabu.

Ukushintsha izakhiwo ngesikhathi sokusebenza, isibonelo, usayizi wefonti noma umbala wenkinobho ngemva kokuqinisekisa, kungokwemvelo kule modeli. Hlanganisa izinguquko emicimbini futhi uzothola ama-UI asebenzayo kalula..

I-HTML nokuthunyelwa komcimbi

Uma isixhumi esibonakalayo sakhiwe ngendlela eguquguqukayo, ukubhalisela into entsha ngayinye kungabiza kakhulu. Ukuthunyelwa komcimbi kulalela esitsheni esivamile futhi kuhlunge nge-e.target, okwenza kube lula kakhulu izinhlu noma amathebula anemigqa evelayo futhi enyamalale.

document.querySelector('#lista').addEventListener('click', (e) => {
  if (e.target.matches('li.removible')) {
    e.target.remove();
  }
});

Ngakho umlaleli oyedwa uphatha zonke izici zamanje nezesikhathi esizayo ngaphakathi kwesiqukathi esingu-#list. Okubhaliselwe okumbalwa, inkumbulo encane, kanye nengozi encane yokuvuza.

Ihlangana kanjani namanethiwekhi nesikhathi sangempela?

Ku-Node.js, amasokhethi nokusakaza sekuvele kusebenza ngokusekelwe ezenzakalweni: 'idatha', 'end', 'iphutha', 'vala'... Vele unamathisele izibambi futhi uvumele isikhathi sokusebenza senze okunye.Ezipheqululini, i-WebSocket ne-EventSource ilandela isimiso esifanayo.

Ku-IoT, ukufika kwezilinganiso ezivela kuzinzwa kuyimbangela yemvelo. Ipayipi lomcimbi lingenza kube ngokwejwayelekile, liqinisekise, futhi lishicilele izexwayiso ezibuyekeziwe noma amadeshibhodi. ngaphandle kokungenelela okwenziwa ngesandla.

Ukufunda nokuzijwayeza okuqondisiwe

Uma ufuna ukuqhubekisela phambili izinto, kuwumqondo omuhle ukuzijayeza ngamaphrojekthi amancane: ifomu elinokuqinisekiswa okushisayo, ingxoxo neWebSocket, ideshibhodi edla ukusakaza, noma uhlelo lokusebenza lwedeskithophu olunezibopho. Ukuphindaphinda ezimweni ezehlukene kuhlanganisa ukukhalipha namaphethini.

Enye inketho ukuqeqesha ngezinhlelo eziqinile ezihlanganisa okuyisisekelo, izakhiwo, kanye nokuthunyelwa. I-bootcamp enhle yezinhlelo zokusebenza zeselula noma ukuthuthukiswa kwewebhu yesimanje kuzokusheshisa emicimbini, i-asynchrony, kanye nokwakheka kwesixhumi esibonakalayo. isilungele ukukhiqizwa.

Ukuziphatha okuqhutshwa umcimbi kukuvumela ukuthi wakhe isofthiwe ephendula ngendlela abantu abayilindele ngayo: ukungavimbi futhi ngesikhathi esifanele. Manje usunemiqondo (imicimbi, i-emitters, abamukeli, i-loop), izinhlobo ezivame kakhulu, ukusetshenziswa kwento yomcimbi, izibonelo ku-Node.js ne-Python/tkinter, indima yezakhiwo nezindlela ezindaweni ezibonakalayo, izinhlelo zokusebenza zangempela kanye nemikhuba emihle.Ngalezi zisekelo, ukusuka kokuchofoza uye kumphumela kuzoba indaba yokulalela kahle, ukuphatha kangcono, nokugcina isistimu ihlanzekile futhi ihlukaniswe.

yini redis
I-athikili ehlobene:
Iyini i-Redis: Umhlahlandlela Ophelele Wokusebenzisa, Izinzuzo, kanye Nezibonelo