⊗jsPmDmChA 355 of 505 menu

JavaScript-da Zanjirlashning Afzalliklari va Kamchiliklari

Zanjirlar kodni qisqartirishiga qaramasdan, aksariyat hollarda o'zgaruvchi kiritish ancha qulayroqdir. Ikkita misolni solishtiring - hozirda men elem o'zgaruvchisini kiritdim va istalgancha atributlarni yozishim mumkin, bunda querySelector faqat bir marta chaqiriladi:

let elem = document.querySelector('#elem'); elem.value = 'www'; elem.type = 'submit';

Hozir esa men yangi o'zgaruvchi kiritmayapman va shuning uchun querySelector ni ikki marta chaqirishga majburman:

document.querySelector('#elem').value = 'www'; document.querySelector('#elem').type = 'submit';

Mening fikrimcha, bu kod murakkablashdi, garchi bitta qatorga kamroq joy egallasa ham. Bundan tashqari, agar men id ning qiymatini 'elem' dan boshqasiga o'zgartirmoqchi bo'lsam, buni ko'p joylarda qilishim kerak bo'ladi, bu esa unchalik qulay emas.

Yana bir muammo bor - brauzerga bo'lgan yuk. querySelector usuli bajarydigan sahifa bo'yicha elementlarni qidirish, juda sekin operatsiyadir (va umuman sahifa elementlari bilan ishlash - bu sekin operatsiyadir - buni eslang).

Bizning holatimizda, agar har safar querySelector dan foydalansak, brauzer har safar HTML sahifani qayta ishlaydi va berilgan id ga ega elementni bir necha marta qidiradi (id lar bir xil bo'lsa ham farqi yo'q - brauzer barcha amallarni bir necha marta bajaradi), bu esa brauzerning ishlashini sekinlashtirishi mumkin bo'lgan foydasiz operatsiyalardir.

Agar elem o'zgaruvchisidan foydalansak - sahifa bo'yicha hech qanday qidiruv bo'lmaydi (element allaqachon topilgan va unga havola o'zgaruvchida saqlanadi).

Quyidagi kod berilgan:

<img id="image" src="avatar.png" width="300" height="500"> console.log(document.querySelector('#image').src); console.log(document.querySelector('#image').width); console.log(document.querySelector('#image').height);

Ushbu kodning kamchiliklarini ko'rsating. Ularni tuzating.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish