Răspunsuri html. Descrierea obiectului Response

Traducere: Vlad Merzhevich

Toată lumea știe despre formularele web, nu? Inserăm o etichetă, câteva, poate, completăm totul cu un buton și gata.

Nu știi jumătate. HTML5 definește peste o duzină de noi tipuri de câmpuri pe care le puteți utiliza în formularele dvs. Și când spun „folosește”, vreau să spun că pot fi folosite imediat - fără trucuri, hack-uri sau soluții alternative. Nu vă faceți griji prea mult, nu spun că toate aceste noi funcții interesante sunt de fapt acceptate în fiecare browser. Absolut nu, nu mă refer la toată lumea. În browserele moderne, da, formularele dvs. vor arăta tot ceea ce sunt capabili. Dar în browserele mai vechi, formularele dvs. vor funcționa în continuare, deși nu la potențialul lor maxim. Adică, aceste caracteristici se degradează în mod grațios în fiecare browser. Chiar și în IE6.

Text prompt Suport text prompt
I.E. Firefox Safari Crom Operă iPhone Android
- 4.0+ 4.0+ 4.0+ 11.0+ 4.0+ -

Prima îmbunătățire HTML5 cu privire la formulare este capacitatea de a seta text prompt în câmpul de introducere. Acest text este afișat în câmpul de introducere dacă câmpul este gol și nu are focalizare. De îndată ce faceți clic în câmpul de introducere (sau navigați la acesta prin Tab), textul indiciu dispare.

Probabil ați mai văzut textul prompt. De exemplu, Mozilla Firefox include text sugestiv în bara de adrese care spune „Căutare în marcaje și istoric”.

Când faceți clic pe bara de adrese, textul indiciu dispare.

Iată cum puteți include text sugestiv în formularele dvs.




Browserele care nu acceptă atributul substituent îl ignoră pur și simplu. Fără vătămare sau încălcare.

Întrebați profesorul Markup

☞ Î. Pot folosi marcajul HTML pentru atributul substituent? Vreau să inserez o poză sau poate schimba culorile.

A. Atributul substituent poate conține doar text, fără cod HTML. Cu toate acestea, există extensii CSS speciale care vă permit să setați stilul textului în unele browsere.

Câmpuri de focalizare automată Suport autofocus
I.E. Firefox Safari Crom Operă iPhone Android
- - 4.0+ 3.0+ 10.0+ - -

Site-urile pot folosi JavaScript pentru a se concentra automat pe primul câmp de formular. De exemplu, pe pagina principală Google.com Câmpul pentru introducerea cuvintelor cheie de căutare are focalizare automată. Deși acest lucru este convenabil pentru majoritatea oamenilor, poate fi enervant pentru utilizatorii avansați și persoanele cu nevoi speciale. Dacă apăsați pe spațiu în timp ce așteptați ca pagina să defileze, nu va exista derulare, deoarece accentul este pus pe câmpul de introducere al formularului (se va introduce spațiu în câmp în loc să deruleze). Dacă mutați focalizarea pe un alt câmp de introducere în timp ce pagina se încarcă, scriptul de focalizare automată al site-ului poate muta „util” focalizarea înapoi la câmpul de introducere original, întrerupând tastarea și determinându-vă să introduceți în locul greșit.

Deoarece focalizarea automată funcționează prin JavaScript, pot exista dificultăți în gestionarea acestor cazuri extreme și mici opțiuni pentru acei oameni care nu doresc ca o pagină web să le „fure” concentrarea.

Pentru a rezolva aceste probleme, HTML5 introduce atributul autofocus pentru toate elementele de formular. Atributul de focalizare automată face exact ceea ce sună: de îndată ce pagina se încarcă, mută focalizarea în câmpul specificat. Dar, deoarece acesta este doar un marcaj și nu un script, comportamentul va fi consecvent pe toate site-urile. În plus, producătorii de browsere (sau autorii extensiilor) pot oferi utilizatorilor o modalitate de a dezactiva focalizarea automată.

Iată cum puteți seta un câmp de formular pentru focalizare automată.




Browserele care nu acceptă atributul de focalizare automată îl vor ignora.

Ce s-a întâmplat? Să presupunem că doriți ca focalizarea automată să funcționeze peste tot, nu doar în browserele HTML5 de lux? Puteți lăsa scriptul curent cu autofocus, doar faceți două mici modificări:

  • adăugați atributul autofocus la codul HTML;
  • Verificați dacă browserul acceptă atributul de focalizare automată și, dacă nu, rulați propriul script.

Focalizare automată cu alternativă




dacă (!("autofocus" în document.createElement("input"))) (
document.getElementById("q").focus();
}


Setați focalizarea devreme

Multe pagini web așteaptă ca window.onload să se declanșeze și să se concentreze. Dar evenimentul window.onload nu se va declanșa până când toate imaginile nu se vor încărca. Dacă pagina dvs. are o mulțime de imagini, astfel de scripturi naive se vor schimba potențial după ce utilizatorul a început să interacționeze cu o altă parte a paginii dvs. Acesta este motivul pentru care utilizatorii puternici urăsc scripturile de focalizare automată.

De exemplu, în secțiunea anterioară, scriptul de focalizare automată a fost plasat imediat după câmpul de formular la care face referire. Aceasta este soluția optimă, dar vă poate ofensa sensibilitatea punând un bloc de cod JavaScript în mijlocul paginii (sau mai banal, sistemul dumneavoastră poate să nu fie la fel de flexibil). Dacă nu puteți insera un script în mijlocul paginii, ar trebui să setați focalizarea printr-un eveniment personalizat precum $(document).ready() în jQuery în loc de window.onload .

Focalizare automată prin jQuery




$(document).ready(funcție() (

$("#q").focus();
}
});






Evenimentul personalizat jQuery se declanșează de îndată ce DOM-ul este accesibil - adică așteaptă să se încarce textul paginii, dar nu așteaptă să se încarce toate imaginile. Aceasta nu este o abordare optimă - dacă pagina este neobișnuit de mare sau conexiunea la rețea este lentă, utilizatorul poate interacționa în continuare cu pagina înainte de executarea scriptului de focalizare. Dar este totuși mult mai bine decât să așteptați ca evenimentul window.onload să aibă loc.

Dacă sunteți de acord și sunteți dispus să introduceți un script cu o singură declarație în codul paginii dvs., acesta este un compromis care este mai puțin urât decât prima opțiune și mai bun decât a doua. Puteți utiliza evenimente personalizate jQuery pentru a vă seta propriile evenimente, să spunem autofocus_ready. Apoi puteți declanșa acest eveniment manual, de îndată ce câmpul de focalizare automată devine disponibil. Mulțumesc lui E.M. Shtenberg pentru că m-a învățat această tehnică.

Focalizare automată cu un eveniment personalizat alternativ




$(document).bind("autofocus_ready", function() (
dacă (!(„autofocus” în document.createElement(„input”))) (
$("#q").focus();
}
});





$(document).trigger("autofocus_ready");

Această soluție este optimă, la fel ca prima abordare. Focalizarea va fi setată pe câmpul formular cât mai curând posibil din punct de vedere tehnic, în timp ce textul paginii încă se încarcă. O parte din logica aplicației (focalizarea în câmpul formularului) a fost mutată din corpul paginii în secțiune. Acest exemplu se bazează pe jQuery, dar conceptul de evenimente personalizate nu este unic pentru jQuery. Alte biblioteci JavaScript precum YUI și Dojo oferă capabilități similare.

Să rezumam.

  • Setarea corectă a focalizării este importantă.
  • Dacă este posibil, cereți browserului să folosească atributul de focalizare automată pe câmpul în care doriți să vă focalizați.
  • Dacă utilizați cod alternativ pentru browsere mai vechi, definiți suportul pentru atributul de focalizare automată, astfel încât scriptul să ruleze numai în browsere mai vechi.
  • Concentrați-vă cât mai devreme posibil. Inserați scriptul de focalizare în cod imediat după câmpul formularului. Dacă acest lucru nu vă deranjează, încorporați o bibliotecă JavaScript care acceptă evenimente personalizate și ridicați evenimentul în cod imediat după câmpul formularului. Dacă acest lucru nu este posibil, utilizați un eveniment precum $(document).ready() din jQuery.
  • În niciun caz nu trebuie să așteptați ca window.onload să se concentreze.
Adrese de email

De mai bine de un deceniu, formularele au conținut doar câteva tipuri de câmpuri. Cele mai frecvente sunt următoarele.

Toate aceste tipuri de câmpuri încă funcționează în HTML5. Dacă faceți „upgrade la HTML5” (poate prin schimbarea !DOCTYPE ), nu va trebui să faceți nicio modificare în formularele dvs. Da, pentru compatibilitatea inversă!

Cu toate acestea, HTML5 definește 13 noi tipuri de câmpuri și nu există niciun motiv pentru a nu începe să le utilizați.

Primul dintre aceste noi tipuri de adrese de e-mail. Arata cam asa.





Aveam de gând să scriu o propoziție care începea „pe browsere care nu acceptă type="email" ..." dar s-a oprit. De ce? Pentru că nu sunt sigur dacă browserele nu acceptă type="email" . Toate browserele „support” type="email" . S-ar putea să nu facă nimic special, dar browserele care nu recunosc type="email" îl vor trata ca tip="text" și îl vor reda ca un câmp de text normal.

Voi sublinia cât de important este acest lucru. Există milioane de formulare pe Internet care vă cer să introduceți adresa de e-mail și toate folosesc . Vedeți o casetă de text, introduceți adresa dvs. de e-mail în ea și gata. Și apoi vine HTML5, care definește type="email" . Înnebunesc browserele? Nu. Fiecare browser de pe Pământ tratează atributul tip necunoscut drept type="text" - chiar și IE6. Așa că vă puteți „reîmprospăta” formularele folosind type="email" chiar acum.

Ce se întâmplă dacă spunem că browserul acceptă type="email"? Ei bine, ar putea însemna orice. Specificația HTML5 nu necesită nicio interfață de utilizator specifică pentru noile tipuri de câmpuri. Opera adaugă o pictogramă mică în câmpul formularului. Alte browsere HTML5, cum ar fi Safari și Chrome, redă ca un câmp de text - la fel ca tip="text" - astfel încât utilizatorii dvs. să nu observe diferența (până când nu se uită la codul sursă).

Și apoi este iPhone-ul.

iPhone nu are o tastatură fizică. Toată „tastarea” se face făcând clic pe tastatura de pe ecran care apare la momentul potrivit, de exemplu, când accesați un câmp de formular pe o pagină web. Apple a făcut ceva inteligent cu browserul iPhone-ului. Recunoaște câteva câmpuri HTML5 noi și schimbă dinamic tastatura de pe ecran pentru a optimiza introducerea.

De exemplu, o adresă de e-mail este text, nu? Desigur, dar acesta este un tip special de text. Astfel, aproape toate adresele de e-mail conțin simbolul @ și cel puțin un punct (.), dar este puțin probabil să conțină un spațiu. Deci, atunci când utilizați un iPhone și accesați , veți primi o tastatură pe ecran care include o bară de spațiu mai mică, precum și taste dedicate pentru simboluri. Și @.

Lasă-mă să rezumam. Nu există niciun dezavantaj în a converti imediat toate câmpurile de e-mail în type="email" . Aproape nimeni nu va observa acest lucru, cu excepția utilizatorilor de iPhone, care probabil nici nu vor observa acest lucru. Dar cei care observă vor zâmbi liniștiți și îți vor mulțumi că le-ai făcut treaba puțin mai ușoară.

Adrese web

O adresă web – pe care tociștii standardelor o numeau URL-uri, cu excepția câtorva pedanți care o numeau URI – este un alt tip de text specializat. Sintaxa unei adrese web este limitată la standardul relevant de Internet. Dacă cineva vă cere să introduceți o adresă web într-un formular, se așteaptă la ceva de genul „http://www.google.com/”, nu „125 Farwood Road”. Barele oblice sunt obișnuite – chiar și pagina de pornire a Google are trei dintre ele. Punctele sunt de asemenea comune, dar spațiile sunt interzise. Și fiecare adresă web are un sufix de domeniu precum „.com” sau „.org”.

Și așa... (rulația de tobe vă rog)... . Pe iPhone arată așa.

iPhone-ul și-a reproiectat tastatura virtuală așa cum a făcut-o pentru e-mail, dar acum o optimizează pentru tastarea unei adrese web. Bara de spațiu a fost complet înlocuită cu trei taste virtuale: bară oblică, punct și „.com” (puteți țineți apăsată tasta „.com” pentru a selecta un sufix diferit, cum ar fi „.org” sau „.net”).

Browserele care nu acceptă HTML5 vor trata type="url" ca type="text" , așa că nu există niciun dezavantaj în utilizarea acestui tip pentru toate câmpurile în care trebuie să introduceți o adresă web.

Numerele ca contoare

Următorul pas: numerele. Solicitarea unui număr este mai complexă decât solicitarea unei adrese de e-mail sau web. În primul rând, numerele sunt mai complexe decât crezi. Selectați rapid un număr. -1? Nu, mă refer la un număr între 1 și 10,7 ½? Nu, nu, nu fi o fracțiune, prostule. π? Acum tocmai ai ales un număr irațional.

Aș dori să remarc că nu vi se cere adesea „doar un număr”. Este mai probabil ca aceștia să ceară un număr într-un anumit interval. Este posibil să doriți doar anumite tipuri de numere în acest interval - poate numere întregi, dar nu fracții sau zecimale sau ceva mai exotic, cum ar fi multiplii lui 10. HTML5 acoperă toate acestea.

Alegeți un număr, aproape orice

Să ne uităm la un atribut la un moment dat.

  • type="number" înseamnă că acesta este un câmp numeric.
  • min="0" specifică valoarea minimă permisă pentru acest câmp.
  • max="10" este valoarea maximă permisă.
  • step="2" în combinație cu valoarea minimă definește numerele valide din intervalul: 0, 2, 4 și așa mai departe, până la valoarea maximă.
  • value="6" este valoarea implicită. Ar trebui să pară familiar, acesta este același atribut care este întotdeauna folosit pentru a defini valorile câmpurilor de formular. Menționez acest lucru aici ca punct de plecare, că HTML5 se bazează pe versiunile anterioare de HTML. Nu trebuie să reînveți să faci ceea ce ai făcut deja.

Acesta este codul pentru un câmp numeric. Rețineți că toate aceste atribute sunt opționale. Dacă aveți un minim, dar nu un maxim, puteți specifica atributul min, dar nu și atributul max. Valoarea implicită a pasului este 1 și puteți omite atributul pas până când este necesară o valoare de pas diferită. Dacă nu există o valoare implicită, atunci atributul valoare poate fi șirul gol sau chiar omis cu totul.

Dar HTML5 nu se oprește aici. Pentru același preț scăzut al libertății, obțineți aceste tehnici JavaScript la îndemână.

  • input.stepUp(n) crește valoarea câmpului cu n.
  • input.stepDown(n) scade valoarea câmpului cu n.
  • input.valueAsNumber returnează valoarea curentă ca număr în virgulă mobilă (proprietatea input.value este întotdeauna un șir).

Probleme de afișare? Ei bine, interfața corectă pentru gestionarea numerelor este implementată diferit în browsere. Pe iPhone, unde tastarea este dificilă, browserul optimizează din nou tastatura virtuală pentru introducerea numerelor.

În versiunea pentru desktop a Opera, câmpul type="number" apare ca un contor cu săgeți mici sus și jos pe care puteți face clic pentru a modifica valorile.

Opera respectă atributele min , max și step, astfel încât veți obține întotdeauna o valoare numerică acceptabilă. Dacă creșteți valoarea la maxim, săgeata sus din contor devine gri.

Ca și în cazul tuturor celorlalte câmpuri de introducere pe care le-am discutat în acest capitol, browserele care nu acceptă type="number" îl vor trata ca type="text" . Valoarea implicită va fi afișată în câmp (cum este stocată în atributul value), dar alte atribute precum min și max vor fi ignorate. Sunteți liber să le implementați singur sau să utilizați un cadru JavaScript care implementează deja gestionarea contoarelor. Verificați mai întâi aici.

dacă (! .inputtypes.number) (
// nu există suport nativ pentru câmpul tip=număr
// ar putea încerca Dojo sau alt cadru JavaScript
}

Numerele ca cursor

Un numărător nu este singura modalitate de a reprezenta introducerea numerelor. Probabil ați văzut și un glisor care arată așa.

Acum puteți avea și un glisor pe formular. Codul arată ciudat de asemănător cu un câmp de contor.


Toate atributele disponibile sunt aceleași ca pentru type="number" - min , max , step , value - și înseamnă același lucru. Singura diferență este interfața cu utilizatorul. În loc de un câmp de introducere, se așteaptă ca browserele să afișeze type="range" sub formă de glisor. La momentul scrierii, cele mai recente versiuni de Safari, Chrome și Opera funcționează cu aceasta. Din păcate, iPhone-ul se afișează ca un simplu câmp de text, nici măcar nu își optimizează tastatura de pe ecran pentru introducerea numerelor. Toate celelalte browsere tratează pur și simplu câmpul ca type="text" , deci nu există niciun motiv pentru a începe să utilizați acest tip imediat.

HTML 4 nu include selectarea datei prin calendar. Cadrele JavaScript vă permit să ocoliți acest lucru (Dojo, jQuery UI, YUI, Closure Library), dar, desigur, fiecare dintre aceste soluții necesită „implementarea” cadrului pentru orice calendar încorporat.

HTML5 definește în sfârșit o modalitate de a activa selecționatorii nativi de date fără niciun scripting. Există de fapt șase dintre ele: dată, lună, săptămână, oră, dată + oră și dată + oră cu fus orar.

Până acum, suportul este... slab.

Suport pentru selectorul de date Tastați Opera Alte browsere
tip="data" 9.0+ -
tip="lună" 9.0+ -
tip="săptămână" 9.0+ -
tip="timp" 9.0+ -
type="datetime" 9.0+ -
type="datetime-local" 9.0+ -

Iată cum se afișează Opera:

Dacă aveți nevoie de timp împreună cu data, Opera acceptă și:

Dacă aveți nevoie de o lună plus un an (de exemplu, data de expirare a unui card de credit), Opera poate afișa:

Mai puțin obișnuit, dar disponibil, este selectarea săptămânii din an prin:

Nu în ultimul rând este momentul cu:

Selector de date cu alternativă




...

var i = document.createElement("input");
i.setAttribute("tip", "data");
dacă (i.type == „text”) (
// Fără suport nativ pentru selectorul de date :(
// Folosiți Dojo/jQueryUI/YUI/Closure pentru a-l crea,
// apoi înlocuiește dinamic elementul
}

Este probabil că alte browsere vor accepta în cele din urmă aceste tipuri. La fel ca type="email" și alte tipuri, aceste câmpuri de formular vor apărea ca text simplu în browserele care nu recunosc tipul="date" și variantele acestuia. Dacă doriți, puteți doar să utilizați , să faceți fericiți utilizatorii Opera și să așteptați ca alte browsere să ajungă din urmă. Este mai realist să utilizați acest lucru, dar verificați dacă browserul are suport nativ pentru selectorul de date și includeți o soluție alternativă sub forma unui script la alegere (Dojo, jQuery UI, YUI, Closure Library sau alte opțiuni).

Fereastra de căutare

Deci, caută. Nu doar căutări de pe Google sau Yahoo (ei bine, și acelea). Gândiți-vă la orice casetă de căutare, pe orice pagină, pe orice site web. Amazon are o casetă de căutare, Yandex are o casetă de căutare, majoritatea blogurilor au și ele. Cum sunt făcute? , la fel ca orice alt câmp de text de pe web. Să reparăm asta.

Căutați o nouă generație




În unele browsere nu veți observa nicio diferență față de un câmp de text obișnuit. Dar dacă utilizați Safari pe Mac OS X, va arăta așa.

Ai găsit diferența? Câmpul de introducere are colțuri rotunjite! Știu, știu, cu greu poți să-ți stăpânești sentimentele. Dar stai, mai sunt! Când începeți să tastați type="search" în câmp, Safari va insera un mic buton „x” în partea dreaptă a ferestrei. Făcând clic pe „x” se șterge conținutul câmpului. Google Chrome, care are aceeași tehnologie sub capotă, se comportă la fel. Ambele trucuri mici arată și se comportă similar căutării native din iTunes și alte aplicații client Mac OS X.

Apple.com folosește căutarea pe site pentru a ajuta site-ul să transmită un sentiment de „iubitor de araci”. Dar nu este nimic specific pentru Mac-uri aici. Este doar cod, astfel încât fiecare browser de pe fiecare platformă poate alege cum să redeze conform convențiilor platformei. Ca și în cazul tuturor celorlalte tipuri noi, browserele care nu recunosc type="search" îl vor trata ca type="text" , așa că nu există absolut niciun motiv să nu începeți să utilizați type="search" pentru toate casetele de căutare astăzi .

spune profesorul Markup

În mod implicit, Safari nu aplică majoritatea stilurilor. Dacă doriți să forțați Safari să trateze câmpul de căutare ca un câmp de text normal (pentru a vă putea aplica propriile stiluri), adăugați această regulă în foaia de stil.

intrare(
-webkit-aspect:textfield;
}

Îi mulțumesc lui John Lane că m-a învățat acest truc.

Alegerea culorilor

HTML5 definește, de asemenea, un câmp care vă permite să selectați o culoare și o returnează în hexazecimal. Niciun browser nu acceptă alegeri de culoare, ceea ce este păcat pentru că întotdeauna mi-au plăcut paletele Mac OS. Poate intr-o zi.

Notă traducător Opera 11 acceptă această caracteristică.

Validarea formularului

În acest capitol, am vorbit despre noi elemente de formular și despre noi caracteristici precum autofocusul, dar nu am menționat poate cea mai interesantă parte a formularelor HTML5: validarea automată a introducerii. Să ne uităm la problemele comune legate de introducerea unei adrese de e-mail într-un formular. Probabil că aveți validare pe partea client prin JavaScript, urmată de validare pe partea serverului prin PHP, Python sau alt limbaj pe partea serverului. HTML5 nu va înlocui niciodată validarea pe partea de server, dar ar putea într-o zi să înlocuiască validarea pe partea client.

Există două mari probleme cu validarea adresei de e-mail în JavaScript:

  • Un număr mic dintre vizitatorii dvs. (probabil în jur de 10%) nu au JavaScript activat.
  • Veți primi adresa incorect.
  • Serios, vei greși adresa. Determinarea faptului că un set de caractere aleatorii este o adresă de e-mail validă este incredibil de dificilă. Cu cât te uiți mai greu, cu atât devine mai dificil. Am menționat că acest lucru este foarte, foarte greu? Nu este mai ușor să agăți această durere de cap pe browser?

    Verifică Opera tip="email"

    Iată o captură de ecran din Opera 11, deși funcționalitatea este prezentă încă de la Opera 9. Codul implică setarea valorii de e-mail pentru atributul type. Când un utilizator Opera încearcă să trimită un formular cu , browserul verifică automat adresa de e-mail, chiar dacă scripturile sunt dezactivate.

    HTML5 oferă, de asemenea, validarea adreselor web cu câmp și numere cu . Validarea numărului ia în considerare valorile atributelor min și max, astfel încât browserele nu vă vor permite să trimiteți formularul dacă introduceți un număr prea mare.

    Nu există niciun cod care să permită validarea formularelor în HTML5, se face implicit. Pentru a dezactiva validarea, utilizați atributul novalidate.

    Nu mă testa




    Browserele au întârziat să includă suport pentru validarea formularelor în HTML5. Firefox 4 va avea suport complet. Din păcate, Safari și Chrome sunt implementate doar parțial: validează elemente de formular, dar nu afișează niciun mesaj vizibil atunci când un câmp de formular nu reușește validarea. Cu alte cuvinte, dacă introduceți o dată nevalidă (sau scrisă greșit) în type="date" , Safari și Chrome nu vor trimite formularul, dar nu vă vor spune de ce nu a făcut-o. Vor seta focalizarea pe câmpul care conține o valoare nevalidă, dar nu vor afișa un mesaj de eroare precum Opera sau Firefox 4.

    Câmpuri obligatorii A sustine
    I.E. Firefox Safari Crom Operă iPhone Android
    - 4.0+ - - 9.0+ - -

    Validarea formularelor în HTML5 nu se limitează la tipul fiecărui câmp. De asemenea, puteți specifica că unele câmpuri sunt obligatorii, astfel de câmpuri trebuie să aibă o valoare înainte de a putea trimite formularul.

    Codul pentru câmpurile obligatorii este cât se poate de simplu.




    Browserele pot modifica aspectul original al unui câmp obligatoriu. Iată un exemplu despre cum arată în Mozilla Firefox 4.0.

    În plus, dacă încercați să trimiteți un formular fără a completa o valoare necesară, Firefox va afișa o bară de informații care spune că câmpul este obligatoriu și nu poate fi gol.

    Obiectul descris este un instrument foarte util și puternic. Acest obiect are mai multe metode, descrierea lor este dată mai jos:

    Colecții: Metode: Proprietăți: Răspuns.Colectare cookie-uri

    Colecția de cookie-uri stabilește valori pentru cookie-uri. Dacă cookie-urile specificate nu există, le creează. Dacă cookie-ul există, acesta capătă o nouă valoare și o distruge pe cea veche.

    Răspuns.Cookies(cookie) [(cheie) | . atribute ] = valoare

    Opțiuni:

    • cookie - Nume cookie
    • cheie - Parametru opțional. Dacă este specificat, atunci cookie-ul este un director (imbricat) și cheia este un set de valori.
    • atribute - Informații specificate despre cookie-urile în sine. Acest parametru poate fi unul dintre următoarele:
    • valoare - Specifică valoarea care trebuie alocată acestei chei sau atribut.
    NumeDescriere
    DomeniuDoar înregistrare. Dacă este specificat, cookie-urile sunt trimise numai la cererea din acest domeniu.
    ExpirăDoar înregistrare. Data la care expiră cookie-ul. Această dată trebuie setată pentru ca cookie-urile să fie scrise pe hard disk-ul clientului după încheierea sesiunii. Dacă acest atribut nu este setat, se presupune că data de expirare a cookie-ului este data curentă. Cookie-urile vor expira imediat după încheierea sesiunii.
    HasKeyDoar lectură. Indică dacă cookie-ul conține cheia dată.
    caleDoar înregistrare. Dacă este specificat, cookie-urile sunt trimise numai la cerere din această cale. Dacă parametrul nu este setat, se utilizează calea către aplicație.
    SigurDoar înregistrare. Indică dacă cookie-urile vor fi protejate sau nu.

    Cometariu:

    Dacă cookie-ul cheie este creat așa cum se arată în următorul script,

    atunci va fi trimis următorul antet:

    Set-Cookie:MYCOOKIE=TYPE1=zahăr&TYPE2=cookie-uri

    Dacă atribuiți o valoare mycookie fără a utiliza chei, atunci această acțiune va distruge cheile de tip1 și tip2. De exemplu:

    În exemplul anterior, cheile tip1 și tip2 vor fi distruse, iar valorile lor se vor pierde. Mycookie va conține acum valoarea marshmallow de ciocolată.

    De asemenea, puteți verifica existența unei chei specifice în felul următor:

    Dacă este afișat TRUE, atunci o astfel de cheie există dacă este FALSE, nu există.

    Răspuns.Metoda de scriere

    Răspuns.Scrieți variabilă_sau_valoare

    Opțiuni:

    • variable_or_value - Date care vor fi afișate pe ecranul browserului prin HTML. Acest parametru poate fi de orice tip acceptat de VisualBasic Scripting Edition. Adică datele pot fi de următoarele tipuri: dată, șir, caracter, valori numerice. Valoarea acestui parametru nu poate conține combinația %>. În schimb, puteți utiliza combinația echivalentă %\>. Serverul web va converti această secvență în cea necesară când scriptul este executat.

    Următorul exemplu arată cum funcționează metoda Response.write pentru a scoate un mesaj către client.

    Îți spun doar: Și numele tău

    Următorul exemplu adaugă o etichetă HTML la o pagină web. Deoarece această metodă nu poate conține combinația %>, folosim secvența %\>. Deci un exemplu de script:

    Ieșirea va fi linia:

    Răspuns.Metoda de redirecționare

    Response.Redirect URL (URL - Uniform Resource Locator)

    Opțiuni:

    • URL - Parametrul este un descriptor de resurse universal. Afișează când browserul trebuie redirecționat.

    Cometariu:

    Orice apariție a acestei metode între etichete și pagina web va fi ignorată. Această metodă poate fi folosită numai în capul unei pagini HTML. Această metodă va transmite un antet browserului dacă parametrul URL al acestui obiect lipsește în următoarea formă:

    HTTP/1.0 302 Adresa URL a locației obiectului mutat

    Răspuns.Metoda finală

    Răspuns.Sfârşit

    Cometariu:

    Dacă proprietatea Response.Buffer a fost setată la TRUE, atunci apelarea metodei Response.End va șterge tamponul, împingând datele din acesta către client. Dacă nu doriți să trimiteți date utilizatorului, ar trebui să apelați următoarea metodă:

    Metoda Response.AddHeader

    Metoda AddHeader adaugă un antet HTML cu valori specifice. Această metodă adaugă întotdeauna un nou antet răspunsului la browserul clientului. Această metodă nu înlocuiește antetul existent cu unul nou. Antetul adăugat nu poate fi eliminat.

    Această metodă este utilizată numai pentru sarcini „avansate”.

    Response.AddHeader nume_variabilă, valoare

    Opțiuni:

    • variable_name - Numele noilor parametri de antet HTML.
    • value - Setați valoarea care va fi reținută în antet.
    Note:

    Pentru ca metoda să funcționeze corect, variabila_name nu trebuie să conțină caracterul de subliniere (_). Setul ServerVariables interpretează caracterul de subliniere ca o liniuță în antet. De exemplu, următorul script forțează serverul să găsească un parametru din antetul HTML numit MY-HEADER.

    Deoarece protocolul HTTP necesită ca toți parametrii antetului să fie trecuți înaintea corpului paginii HTML, trebuie să apelați metoda AddHeader în scriptul dumneavoastră înainte de a începe descrierea... Există o excepție. Dacă proprietatea Buffer este setată la true, atunci puteți scrie AddHeader oriunde în script, dar înainte de primul apel la metoda Flush. În caz contrar, apelarea metodei AddHeader va genera o eroare.

    Următoarele două fișiere .ASP demonstrează acest ultim punct.

    textul dvs. de pe pagină

    În acest exemplu, pagina nu este tamponată. Scriptul funcționează, totuși, AddHeader este apelat înainte ca serverul să producă ieșire HTML către client.

    iata cateva informatii de pe pagina ta...

    În cel de-al doilea exemplu, pagina este în buffer și, ca rezultat, serverul nu trimite text către client până când scriptul în sine se termină sau este întâlnită metoda Flush. Puteți folosi această metodă pentru a trimite mai multe copii ale unui parametru de antet cu valori diferite, ca și antetul WWW-Authenticate.

    Metoda Response.AppendToLog

    Metoda AppendToLog adaugă o linie la sfârșitul fișierului de raport (fișier jurnal) al serverului web. Puteți apela această metodă de câte ori aveți nevoie. De fiecare dată când apelați metoda, șirul pe care îl specificați va fi scris în fișierul de raport al serverului.

    Valoarea Response.AppendToLog

    Opțiuni:

    • valoare - Text care va fi adăugat la fișierul de raport al serverului web. Acest șir nu poate conține caracterul virgulă (,). Mai mult, lungimea totală a rândului adăugat nu trebuie să depășească 80 de caractere.
    Note:

    Pentru a utiliza această caracteristică, trebuie să aveți opțiunea de interogare URI activată în panoul „Proprietăți avansate de înregistrare” pentru acest server web în IIS.

    Metoda Response.BinaryWrite

    Metoda BinaryWrite vă permite să scrieți informații specificate în ieșirea HTTP curentă fără nicio conversie de caractere. Această metodă este utilă pentru ieșirea de informații care nu sunt șir, cum ar fi datele binare cerute de o aplicație.

    Răspuns. Date BinaryWrite

    Opțiuni:

    • date - Date destinate ieșirii HTTP.

    Dacă aveți un obiect care produce o matrice de octeți, puteți utiliza următorul apel la această metodă pentru a transmite acea matrice unei aplicații care rulează pe computerul client.

    Răspuns.Metoda clară

    Metoda Clear șterge toate ieșirile HTML stocate în tampon. Cu toate acestea, această metodă nu șterge informațiile tampon asociate cu antetul. Puteți utiliza această metodă pentru a gestiona erorile. Cu toate acestea, executarea acestei metode va avea ca rezultat o eroare dacă proprietatea Response.Buffer nu este adevărată.

    Proprietatea Response.CacheControl

    Această proprietate înlocuiește valoarea implicită. Când setați proprietatea la Public, serverul proxy poate stoca în cache ieșirea generată de ASP.

    Response.CacheControl [= antet pentru controlul cache]

    Opțiuni:

    • Antet de control cache - Această opțiune de control antet poate fi publică sau privată.
    Proprietatea Response.CharSet

    Proprietatea CharSet vă permite să adăugați numele tabelului de coduri de caractere (de exemplu, WINDOWS-1251) la antetul HTML, linia tip conținut.

    Response.CharSet nume_tabel_cod

    Opțiuni:

    • charset_name - Un șir care specifică setul de caractere pentru această pagină HTML. Numele acestui tabel de coduri va fi adăugat la antetul fișierului HTML sub parametrul „content-type”.

    Pentru o pagină ASP care nu utilizează proprietatea Response.Charset, parametrul „content-type” din antet va fi după cum urmează:

    Tip de conținut:text/html

    Dacă fișierul ASP conține comanda

    apoi în antet câmpul tip conținut va arăta ca

    Tipul de conținut:text/html; set de caractere=Windows-1251

    Cometariu:

    Această funcție inserează orice linie în antet și nu verifică valabilitatea acesteia.

    Dacă o pagină conține mai multe etichete Response.Charset, atunci fiecare etichetă ulterioară va înlocui valoarea cu propria sa.

    Proprietatea Response.ContentType

    Proprietatea ContentType vă permite să specificați tipul (tipul) conținutului fișierului HTML. Dacă această proprietate nu este utilizată, atunci text/html este luat în mod implicit.

    Response.ContentType [=content_type]

    Opțiuni:

    • content_type - Un șir care descrie tipul de conținut HTML. Acest șir ia de obicei forma „tip/subtip”, unde tipul este categoria principală a conținutului, iar subtipul indică tipul de conținut. Pentru o listă completă a tipurilor acceptate, consultați documentația browserului dvs. sau specificația HHTP.

    Următorul exemplu ilustrează setarea tipului de conținut la Channel Definition Format (Push Channels).

    Al doilea exemplu demonstrează setarea unei proprietăți la cele mai cunoscute valori.

    Răspuns. Proprietatea expiră

    Proprietatea Expires specifică perioada de timp până când pagina HTML memorată în cache de browser este considerată ca nu a expirat (perioada de stocare). Dacă un utilizator solicită din browser o pagină stocată în cache care nu a expirat, browserul o returnează direct din memoria cache.

    Răspuns.Expiră [=număr]

    Opțiuni:

    • număr - Timpul în minute înainte ca pagina să fie considerată „întârziată”. Setarea acestei valori la 0 face ca pagina dată să devină „expirată” imediat.

    Cometariu:

    Dacă această proprietate este setată de mai multe ori pe o pagină, se folosește cea mai mică valoare.

    Response.ExpiresAbsolute proprietate

    Proprietatea ExpiresAbsolute specifică ora și data după care pagina HTML stocată în cache de browser este considerată expirată (perioada de păstrare a expirat). Dacă un utilizator solicită din browser o pagină stocată în cache care nu a expirat, browserul o returnează direct din memoria cache. Dacă este specificată ora (și este specificată data), atunci „data de expirare” a acestei pagini expiră la miezul nopții acelei zile. Dacă nu este specificată nici ora, nici data, atunci valoarea este atribuită în funcție de ziua și ora la care a fost rulat scriptul.

    Response.ExpiresAbsolute [= [data] [ora]]

    Opțiuni:

    • data - Indică data de expirare a „perioadei de valabilitate”. Formatul datei trebuie să respecte standardul RFC-1123.
    • time - Indică ora la care expiră pagina. Această valoare este convertită în GMT (Greenwich Mean Time) înainte ca antetul să fie trimis clientului.

    Cometariu:

    Dacă o anumită proprietate este definită de mai multe ori pe o pagină, atunci timpul de expirare a „perioadei de stocare” este considerată ca fiind cea mai devreme dintre toate valorile specificate.

    Proprietatea Response.IsClientConnected

    Această proprietate este doar pentru citire, ceea ce înseamnă că nu pot fi atribuite valori acestei proprietăți. Această proprietate indică dacă clientul este conectat sau nu deja conectat la serverul definit în ultimul răspuns.

    Response.IsClientConnected()

    Cometariu:

    Această proprietate vă permite să determinați când un utilizator este conectat și când este deconectat de la server. De exemplu, durata perioadei de timp dintre momentul în care serverul a răspuns și momentul în care clientul a făcut cererea oferă încredere că clientul este încă conectat și are sens să continue executarea scriptului.