19
holatdagi kabi src atributi keltirilgan tasvirning manzilini saqlaydi. Endi siz Java S
ning 1.1 versiyasida allaqachon Web saxifaga yuklangan tasvirga yangi adres
berish imkoniyatiga egasiz. Va natijada tasvir Web saxifaga eski adresni yangi
adres bilan almashtirgan holda yuklanadi. Misol uchun ushbu yozuvni qo’ramiz:
Bu yerda img1.gif tasvir yuklanadi va Myimg nomini oladi. Navbatdagi satrda
oldingi img1.gif tasvir allaqachon yangi img2.gif bilan almashadi:
Documunt.MyImages.src = “img2.gif”;
Bunda yangi tasvir har doim eski tasvir o’lchamini oladi. Va siz endi uning
o’lchamini o’zlashtira olmaysiz.
Tasvirlarni ogoxlantiruvchi yuklanishi.
Bunday xarakatlarimizning kamchiliklaridan biri bo’lib,
src ga yangi adres
berilgandan so’ng unga mos tasvir yuklanish jarayoni boshlanishi hisoblanadi. Va
bu oldindan qilinmaganligi sababli yangi tasvir internet orqali uzatilguncha va uz
joyiga borguncha bir necha vaqt o’tadi. Ayrim hollarda bu mumkin, lekin bunday
tez – tez to’xtalishlarga ko’nish mumkin emas. Bu holat bilan biz nima qilishimiz
kerak? Albatta, bu masalaning yechimi bo’lib, tasvirlarni ogoxlantiruvchi
yuklanishdan foydalanish hisoblanadi.
Buning uchun bu yangi Image ob’ektini yaratishimiz kerak.
Navbatdagi
satrlarni ko’rib chiqamiz:
HiddenImg = new Images();
HiddenImg.sec = “img3.gif”;
1 – satrda yangi Image ob’ekti yaratiladi. 2 – satrda keyinchalik hiddenimg ob’ekti
yordamida nomayon bo’ladigan tasvir adresi ko’rsatiladi. Ko’rib o’tganimizdek,
20
src atributidagi yangi adres brauzerini ushbu berilgan adresli tasvirni yuklashga
majbur qiladi. Shuning uchun, bizning misolimizdagi 2-satr bajarilganda img2.gif
tasvir yuklana boshlaydi. Lekin HiddenImgning o’z nomidan kelib chiqqan holda
(“yashirin tasvir”) brauzer yuklashni tamom qilgandan so’ng ekranda tasvir paydo
bo’lmaydi. U faqat kompyuterning xotirasida kelgusi foydalanish uchun saqlangan
bo’ladi. Ekranga tasvirni chiqarish uchun biz
document.myImage.src = hiddenImg.src;
satridan foydalanamiz:
lekin endi tasvir xotiradan darrov olinadi va ekranda namoyon bo’ladi. Shu tariqa
biz tasvirni ogohlantiruvchi yuklanishni boshqardik.
Siz anik bir hodisaga reakstiya sifatida tasvirlarning
almashinishidan
foydalangan holda ajoyib natija olishingiz mumkin. Masalan, sichkoncha
ko’rsatkichi saxifaning aniq bir joyiga borganda tasvirni almashtirishingiz
mumkin. Navbatdagi misolda oddiy qilib sichkoncha ko’rsatkichi
tasvirga
joylashtirilganida tekshirib ko’ring ( umuman bunda siz agar brauzeringiz
faqatgina Java S 1.0 ni k-kuv.digan bo’lsa, xatolar haqida xabar olasiz,
bundan
qutilishni so’ngroq ko’rib chikamiz ).
O’quvchi Java S 1.1 k-kuv.maydigan brauzerdan foydalanyapti
2 chi tasvir yuklatilmagan
Buning uchun biz Web saxifadagi har bir tasvir uchun yangi komandalar
yozishimiz kerak
Biz shunday skriptga ega bo’lishni xoxlar edikki, qaysiki uni Web saxifalarning
ko’pchiligida yana va yana ishlatish imkoni bo’lsa.
Endi biz ushbu muommalarni yechuvchi skriptni to’la variantini ko’rib chiqamiz.
Bu skript uzun bo’lganiga qaramasdan siz uni bir yozib olishingiz bilan ushbu
21
muommalar haqida qayg’urmaysiz. Ushbu skript o’zini ixchamligini saqlab qolishi
uchun 2 ta shartni ko’rib chiqish kerak:
Berilgan skript barcha tasvirlarni pics massiviga joylashtiradi. Ushbu massiv eng
dastlab chaqirilgan preload ( ) funksiyasi yordamida yaratiladi. Preload ( )
funkstiyasini chaqiruvi oddiygina quyidagi ko’rinishda bo’ladi.
Bu shuni anglatadiki, bu skript serverdan 2 ta img1.gif va img2.gif tasvirlarini
yuklashi kerak. Ulardan birinchisini sichqoncha ko’rsatkichi tasvir maydoniga
tushmaganda hosil bo’ladigan tasvirdir. Foydalanuvchi sichqoncha ko’rsatkichini
tasvirga joylashtirsa, u holda 2 chi tasvir paydo bo’ladi. Preload ( ) funkstiyasini
chaqirish maboynida “ link 1 ” suzini 1 chi argument sifatida ko’rsatamiz va Web
saxifadagi Image ob’ektiga oldindan yuklatilgan 2 ta tasvirni berib qo’yamiz. Agar
siz bizning misolimizda < body > bo’limini ko’rib chiqsangiz o’sha link 1 nom
bilan atalgan tasvirni topasiz. Biz tasvirni Web-saxifada hosil qilish uchun skriptni
yozib yurmasdan uning tartib raqamidan emas balki uning nomidan foydalanamiz.
On ( ) va off ( ) funksiyalarni ikkalasi ham onMouseOver va onMouseOut
hodisalarni qayta ishlash programmasi vositasida chaqiriladi.Image elementining
o’zi MouseOver va MouseOut hodisalarini bajarib bilmagani uchun biz bu
tasvirlarni murojaat qilishimiz kerak. On ( ) funkstiyasi ko’rsatilgan tasvirdan
boshqasini dastlabki holatiga keltirishni ko’rishimiz mumkin. Aks holda darrov bir
necha tasvir belgilangan bo’lib qoladi, shuning uchun buni qilish juda zarur. ( Gap
shundaki agarda foydalanuvchi darxol darcha chegarasidan ko’rsatkichni tasvirga
joylashtirsa MouseOut hodisasi registrastiya qilinmaydi ).