ASP vs HTML


Dinamicitatea paginilor

Paginile HTML sunt statice. Şi când spun statice mă refer la faptul că le lipseşte un alt dinamism decât cel dat de gif-urile animate sau de scripturi DHTML. Să luăm un exemplu: dorim într-o anume pagină să afişăm aleator câte o meditaţie. Să spunem că avem 10 meditaţii, fiecare a câte 20KB. Să încercăm să realizăm aceasta fără să folosim ASP, ci cu HTML şi JScript.

Fişierul „meditatii.html”

………………

<script lang=”JavaScript”>
<!–
//numărul de meditaţii
adX=10
//generăm un număr aleator între 1 şi 10
adi=Math.random()
ad=Math.round((adi*1000))%adX
ad++
//pe baza numărului aleator scriem o meditaţie
switch(ad){
case 1:
document.write(„Într-una din zile, Isus a mers…
…………………
break;
case 2:
document.write(„În Evanghelia de astăzi am auzit cum…
…………………
…………………
break;
case 10:
document.write(„Să medităm în cele ce urmează asupra…
…………………
break;
}
//–>
</script>

……………..

Pare uşor nu? Hmmmm. Şi numai să scrii un paragraf în cadrul la document.write(„…”) este incomod… dar 10 de meditaţii cu mai multe paragrafe? În fine. Să spunem că acest argument nu vă convinge, că nu vă deranjează să editaţi astfel textul. Dar să facem un calcul. Pagina – fără nici o meditaţie – să spunem că are 10KB. Folosind HTML şi JScript, după ce punem meditaţiile pagina va avea 10KB iniţiali plus 10 meditaţii x 20KB meditaţia, un total de 210KB!!! Destul de mult doar pentru text. Şi asta când în mod normal pagina ar trebui să aibă 10KB iniţiali şi 20KB cât are o meditaţie, adică un total de 30KB! Pagina HTML poartă în sine TOATE meditaţiile, deşi se afişează doar UNA.

Desigur, în ASP treburile stau la polul opus: editarea este mai uşoară, mai intuitivă, iar pagina care se încarcă în browser va include doar O SINGURĂ meditaţie, deşi sunt TOATE „prezente” în fişierul ASP, iar o altă încărcare va aduce o altă meditaţie. Cum? Să vedem codul:

Fişierul „meditatii.asp”

<%@ LANGUAGE = „JScript” %>

………………

<%
//numărul de meditaţii
adX=10
//generăm un număr aleator între 1 şi 10
adi=Math.random()
ad=Math.round((adi*1000))%adX
ad++
//pe baza numărului aleator scriem o meditaţie
switch(ad){
case 1:
%>
Într-una din zile, Isus a mers…
…………………
<%
break;
case 2:
%>
În Evanghelia de astăzi am auzit cum…
…………………
…………………
<%
break;
case 10:
%>
Să medităm în cele ce urmează asupra…
…………………
<%
break;
}
%>

……………..

Observăm în primul rând cum meditaţiile se scriu normal, nu în cadrul unor funcţii, ca parametrii (Se putea şi aşa, folosind în loc de document.write funcţia ASP Response.write). Dar mai important: ţineţi minte că pagina se execută pe server !!! astfel că utilizatorului i se va încărca o pagină HTML care conţine DOAR o meditaţie, aleator. Încă o dată: pagina ASP se execută pe server, unde se stabileşte conţinutul ei care este HTML şi care se încarcă de fapt în browser – adică este ceea ce vede utilizatorul dacă se uită la sursa paginii. Niciodată nu veţi putea dintr-un browser să vedeţi sursa ASP a unei pagini, ci doar rezultatul HTML al interpretării ei pe server.

Deci ori de câte ori utilizatorul încarcă pagina, aceasta va avea – conform exemplului fixat mai sus – 30KB, şi nu 210KB. Nu vă pare mare diferenţa? Dar dacă aveţi 100 de meditaţii? În ASP pagina generată va avea întotdeauna 30KB pe când în HTML ar ajunge la 2.010KB, adica peste 2MB!!! V-am convins? Discuţia a alunecat însă mai mult spre volumul paginii decât spre dinamicitate. Să revenim deci la sub-titlul curent: dinamicitatea paginilor!

Să rămânem la acelaşi „proiect” cu meditaţii. Dar să spunem că nu dorim să se încarce aleator câte una, ci că dorim să publicăm o serie de meditaţii. Cum aţi face în HTML? Aţi face o pagină sumar care cuprine linkuri către fiecare meditaţie, şi apoi tot atâtea pagini HTML câte meditaţii sunt. Dacă sunt 10 meditaţii, înseamnă 1 (cuprins) + 10 = 11 pagini. Dacă sunt 100 de meditaţii, vor fi 101 pagini. Ce aţi spune să faceţi în ASP totul într-o singură pagină?! Da! O pagină care să încarce şi cuprinsul, şi meditaţia 1 şi meditaţia 30, fiecare atunci când trebuie. Simplu: urmăriţi codul de mai jos.

Fişierul „meditatii.asp”

<%@ LANGUAGE = „JScript” %>

………………

<%
//extragem parametrul cu numărul meditaţiei de afişat
id=Request.QueryString(„id”)-0
//pe baza acestui număr afişăm o meditaţie
switch(ad){
case 1:
%>
Într-una din zile, Isus a mers…
…………………
<%
break;
case 2:
%>
În Evanghelia de astăzi am auzit cum…
…………………
…………………
<%
break;
case 10:
%>
Să medităm în cele ce urmează asupra…
…………………
<%
break;
default:
//dacă numărul meditaţiei nu este nici 1, nici 2, nici …
//atunci înseamnă că nu se doreşte o meditaţie ci cuprinsul
%>
<b>Cuprins</b>
<p><a href=meditatii.asp?id=1>Prima meditaţie</a>
<p><a href=meditatii.asp?id=1>A doua meditaţie</a>
………….
<p><a href=meditatii.asp?id=1>A zecea meditaţie</a>
<%
}
%>

……………..

Deşi comentariile incluse în cod explică ce şi cum se întâmplă, să reluăm. Avem o pagină ASP numită „meditaţii.asp”. Prima instrucţiune (Request.QueryString) verifică dacă există vreun parametru trimis paginii. Desigur, apelând „meditaţii.asp” nu va fi nici un parametru, deci id va primi valoarea 0 (zero). Urmează structura switch: cum id nu este nici 1, nici 2, ş.a.m.d., nici 10, se va ajunge la ramura default, adică la afişarea cuprinsului – exact ce dorim! În cuprins observăm că fiecare meditaţie are ca adresă aceeaşi pagină, DAR cu un parametru transmis prin semnul întrebării: „meditatii.asp?id=1” pentru prima meditaţie, ş.a.m.d. Deja intuiţi: când va fi apelată pagina cu parametrul id=1, acesta va fi extras în variabila id, ceea ce va face ca în structura switch să se intre pe ramura 1 şi astfel va fi afişată meditaţia 1. Ş.a.m.d. pentru celelalte meditaţii.

Dacă cunoaşteţi JScript sau ceva despre programare, aţi înţeles desigur totul. Dacă nu, acceptaţi că lucrurile în ASP se fac mai uşor şi mai bine şi propuneţi-vă să învăţaţi tot ce vă trebuie pentru a stăpâni acest limbaj.

Lucrurile devin şi mai minunate, dar într-adevăr şi mai complicate, odată ce ajungem la formulare şi baze de date!

Folosirea formularelor şi lucrul cu baze de date


Pagini: 1 2 3 4 5

Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (3 evaluări, media: 3,67 din 5)
Se încarcă...

2 comentarii

  1. Andrei spune:

    Sunt impresionat.

  2. Vio spune:

    Imi place cum gandesti. E ok.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *