Odpovede vedcov html. Popis objektu Response. Opýtajte sa profesora Markupa

Preklad: Vlad Merževič

Každý vie o webových formulároch, však? Vložíme štítok, niekoľko, možno, všetko doplníme tlačidlom a máte hotovo.

Polovicu z toho nepoznáš. HTML5 definuje viac ako tucet nových typov polí, ktoré môžete použiť vo svojich formulároch. A keď hovorím „použitie“, myslím tým, že sa dajú použiť okamžite – bez akýchkoľvek trikov, hackov alebo riešení. Nebojte sa príliš, nehovorím, že všetky tieto vzrušujúce nové funkcie sú skutočne podporované v každom prehliadači. Absolútne nie, nemyslím tým všetkým. V moderných prehliadačoch áno, vaše formuláre ukážu všetko, čoho sú schopné. Ale v starších prehliadačoch budú vaše formuláre stále fungovať, aj keď nie naplno. To znamená, že tieto funkcie sa ladne zhoršujú v každom prehliadači. Dokonca aj v IE6.

Promptný text Rýchla textová podpora
I.E. Firefox Safari Chrome Opera iPhone Android
- 4.0+ 4.0+ 4.0+ 11.0+ 4.0+ -

Prvým vylepšením HTML5 týkajúcich sa formulárov je možnosť nastaviť text výzvy vo vstupnom poli. Tento text sa zobrazí vo vstupnom poli, ak je pole prázdne a nie je aktívne. Hneď ako kliknete do vstupného poľa (alebo doň prejdete cez Tab), text rady zmizne.

Pravdepodobne ste už videli text výzvy. Napríklad, Mozilla Firefox obsahuje pomocný text adresný riadok s nápisom „Hľadať v záložkách a denníku“.

Keď kliknete na panel s adresou, text rady zmizne.

Tu je návod, ako môžete do formulárov zahrnúť sugestívny text.




Prehliadače, ktoré nepodporujú zástupný atribút, ho jednoducho ignorujú. Žiadna ujma alebo porušenie.

Opýtajte sa profesora Markupa

☞ Otázka: Môžem použiť HTML značky pre zástupný atribút? Chcem vložiť obrázok alebo možno zmeniť farby.

Odpoveď: Atribút zástupného symbolu môže obsahovať iba text, žiadny kód HTML. Existujú však špeciálne rozšírenia CSS, ktoré umožňujú nastaviť štýl textu v niektorých prehliadačoch.

Polia automatického zaostrovania Podpora automatického zaostrovania
I.E. Firefox Safari Chrome Opera iPhone Android
- - 4.0+ 3.0+ 10.0+ - -

Webové stránky môžu používať JavaScript automatický príjem zamerať sa v prvom poli formulára. Napríklad na hlavnej stránke Google.com Pole pre zadávanie kľúčových slov pre vyhľadávanie má automatické zaostrovanie. Aj keď je to pohodlné pre väčšinu ľudí, môže to byť nepríjemné pre pokročilých používateľov a ľudí so špeciálnymi potrebami. Ak počas čakania na rolovanie stránky stlačíte medzerník, rolovanie sa neuskutoční, pretože zameranie je na vstupnom poli formulára (namiesto rolovania sa do poľa napíše medzera). Ak počas načítavania stránky presuniete zameranie na iné vstupné pole, skript automatického zaostrovania lokality môže „užitočne“ presunúť zameranie späť do pôvodného vstupného poľa, čím preruší písanie a spôsobí, že budete písať na nesprávnom mieste.

Pretože automatické zaostrovanie funguje prostredníctvom JavaScriptu, môže byť ťažké zvládnuť tieto extrémne prípady a málo možností pre ľudí, ktorí nechcú, aby im webová stránka „ukradla“ zameranie.

Na vyriešenie týchto problémov HTML5 zavádza atribút autofocus pre všetky prvky formulára. Atribút autofocus robí presne to, čo znie: hneď ako sa stránka načíta, presunie zameranie na určené pole. Ale keďže ide len o označenie a nie o skript, správanie bude konzistentné na všetkých stránkach. Okrem toho výrobcovia prehliadačov (alebo autori rozšírení) môžu používateľom ponúkať spôsob, ako vypnúť automatické zaostrovanie.

Tu je návod, ako môžete nastaviť pole formulára na automatické zaostrovanie.




Prehliadače, ktoré nepodporujú atribút autofocus, ho budú ignorovať.

Čo sa stalo? Povedzte, že chcete, aby automatické zaostrovanie fungovalo všade, nielen v luxusných prehliadačoch HTML5? Aktuálny skript môžete ponechať s automatickým zaostrovaním, stačí vykonať dve malé zmeny:

  • pridať atribút autofocus do HTML kódu;
  • Skontrolujte, či prehliadač podporuje atribút autofocus, a ak nie, spustite vlastný skript.

Automatické zaostrovanie s alternatívou




if (!("autofocus" v document.createElement("input")) ) (
document.getElementById("q").focus();
}


Nastaviť zaostrenie skôr

Mnoho webových stránok čaká na spustenie funkcie window.onload a nastavenie zamerania. Udalosť window.onload sa však nespustí, kým sa nenačítajú všetky obrázky. Ak má vaša stránka veľa obrázkov, takéto naivné skripty potenciálne zmenia zameranie, keď používateľ začne interagovať s inou časťou vašej stránky. To je dôvod, prečo pokročilí používatelia nenávidia skripty automatického zaostrovania.

Napríklad v predchádzajúcej časti bol skript automatického zaostrovania umiestnený hneď za pole formulára, na ktoré odkazoval. Toto optimálne riešenie, ale môže uraziť vašu citlivosť, ak do stredu stránky umiestnite blok kódu JavaScript (alebo čo je všednejšie, váš systém nemusí byť taký flexibilný). Ak nemôžete vložiť skript do stredu stránky, mali by ste nastaviť zameranie pomocou vlastnej udalosti ako $(document).ready() v jQuery namiesto window.onload .

Automatické zaostrovanie cez jQuery




$(document).ready(function() (

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






Vlastná udalosť jQuery sa spustí hneď, ako je DOM prístupný – to znamená, že čaká na načítanie textu stránky, ale nečaká na načítanie všetkých obrázkov. Toto nie je optimálny prístup – ak je stránka nezvyčajne veľká resp sieťové pripojenie pomalé, používateľ môže stále interagovať so stránkou pred spustením skriptu zamerania. Ale stále je to oveľa lepšie ako čakať, kým sa stane udalosť window.onload.

Ak súhlasíte a ste ochotní vložiť skript s jedným príkazom do kódu vašej stránky, ide o kompromis, ktorý je menej škaredý ako prvá možnosť a lepší ako druhá možnosť. Vlastné udalosti jQuery môžete použiť na nastavenie vlastných udalostí, povedzme autofocus_ready. Potom môžete túto udalosť spustiť manuálne, len čo bude k dispozícii pole automatického zaostrovania. Ďakujem E.M. Shtenbergovi, že ma naučil túto techniku.

Automatické zaostrovanie s alternatívnou vlastnou udalosťou




$(document).bind("autofocus_ready", function() (
if (!("autofocus" v document.createElement("input"))) (
$("#q").focus();
}
});





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

Toto riešenie je optimálne, rovnako ako prvý prístup. Zameranie sa nastaví na pole formulára hneď, ako to bude technicky možné, kým sa text stránky stále načítava. Časť aplikačnej logiky (zameranie v poli formulára) bola presunutá z tela stránky do sekcie. Tento príklad je založený na jQuery, ale koncept vlastných udalostí nie je jedinečný pre jQuery. Ostatné knižnice JavaScriptu ako YUI a Dojo ponúkajú podobné možnosti.

Poďme si to zhrnúť.

  • Dôležité je správne nastavenie zaostrenia.
  • Ak je to možné, nechajte prehliadač použiť atribút autofocus na poli, na ktoré chcete zaostriť.
  • Ak používate alternatívny kód pre staršie prehliadače, definujte podporu pre atribút autofocus, aby sa skript spúšťal iba v starších prehliadačoch.
  • Zamerajte sa čo najskôr. Vložte skript zamerania do kódu hneď za pole formulára. Ak vám to neprekáža, vložte knižnicu JavaScript, ktorá podporuje vlastné udalosti, a uveďte udalosť v kóde hneď za pole formulára. Ak to nie je možné, použite udalosť ako $(document).ready() z jQuery.
  • Za žiadnych okolností nečakajte, kým window.onload získa zameranie.
Adresy Email

Formuláre už viac ako desaťročie obsahujú len niekoľko typov polí. Najbežnejšie sú nasledujúce.

Všetky tieto typy polí stále fungujú v HTML5. Ak „upgradujete na HTML5“ (možno zmenou !DOCTYPE ), nebudete musieť urobiť jedinú zmenu vo svojich formulároch. Hurá za spätnú kompatibilitu!

HTML5 však definuje 13 nových typov polí a nie je dôvod ich nezačať používať.

Prvý z týchto nových typov e-mailových adries. Vyzerá to asi takto.





Chcel som napísať vetu, ktorá začala „v prehliadačoch, ktoré nepodporujú type="email" ..., ale prestala. prečo? Pretože si nie som istý, či prehliadače nepodporujú type="email" . Všetky prehliadače "podporujú" type="email" . Možno nerobia nič zvláštne, ale prehliadače, ktoré nerozpoznajú type="email" s ním budú zaobchádzať ako s type="text" a vykreslia ho ako normálne textové pole.

Zdôrazním, aké je to dôležité. Na internete sú milióny formulárov, ktoré od vás žiadajú zadanie vašej e-mailovej adresy a všetky používajú . Uvidíte textové pole, zadajte do neho svoju e-mailovú adresu a je to. A potom prichádza HTML5, ktoré definuje type="email" . Zbláznili sa prehliadače? Nie Každý prehliadač na Zemi považuje atribút neznámeho typu za typ="text" – dokonca aj IE6. Takže môžete svoje formuláre "obnoviť" pomocou type="email" hneď teraz.

Čo sa stane, ak povieme, že prehliadač podporuje type="email" ? No, môže to znamenať čokoľvek. Špecifikácia HTML5 nevyžaduje žiadne špecifické používateľské rozhranie pre nové typy polí. Opera pridá do poľa formulára malú ikonu. Iné prehliadače HTML5, ako sú Safari a Chrome, sa vykresľujú ako textové pole – rovnako ako type="text" – takže vaši používatelia si nevšimnú rozdiel (kým sa nepozrú na zdrojový kód).

A potom je tu iPhone.

iPhone nemá fyzickú klávesnicu. Všetko „písanie“ sa vykonáva kliknutím na klávesnicu na obrazovke, ktorá sa objaví vo vhodnom čase, napríklad keď prejdete do poľa formulára na webovej stránke. Apple urobil niečo šikovné Prehliadač iPhone. Rozpoznáva niektoré nové polia HTML5 a dynamicky mení klávesnicu na obrazovke, aby optimalizoval vstup.

Napríklad e-mailová adresa je textová, však? Samozrejme, ale toto je špeciálny typ textu. Takmer všetky e-mailové adresy teda obsahujú symbol @ a podľa najmenej, jedna bodka (.), ale je nepravdepodobné, že budú obsahovať medzeru. Keď teda používate iPhone a prejdete na , získate klávesnicu na obrazovke, ktorá obsahuje menší medzerník, ako aj špeciálne klávesy pre symboly. A @.

Zhrniem to. Okamžité preloženie všetkých vašich polí nie je nevýhodou emailové adresy v type="email" . To si nevšimne takmer nikto okrem používateľov iPhonov, ktorí si to zrejme tiež nevšimnú. Ale tí, ktorí si to všimnú, sa potichu usmejú a poďakujú vám, že ste im trochu uľahčili prácu.

Webové adresy

Webová adresa – ktorú geekovia štandardne nazývajú URL, s výnimkou niekoľkých pedantov, ktorí volali URI – je ďalším typom špecializovaného textu. Syntax webovej adresy je obmedzená na príslušný internetový štandard. Ak vás niekto požiada o zadanie webovej adresy do formulára, očakáva niečo ako „http://www.google.com/“, nie „125 Farwood Road“. Časté sú šikmé čiary – aj v domovskej stránke Google ich má tri. Časté sú aj bodky, ale medzery sú zakázané. A každá webová adresa má príponu domény ako „.com“ alebo „.org“.

A tak... (bubon prosím)... . Na iPhone to vyzerá takto.

iPhone zmenil svoje virtuálna klávesnica, rovnako ako som to urobil pre e-mailovú adresu, ale teraz som ju optimalizoval na zadávanie webovej adresy. Medzerník bol úplne nahradený tromi virtuálnymi klávesmi: lomítko, bodka a „.com“ (podržaním klávesu „.com“ môžete vybrať inú príponu, napríklad „.org“ alebo „.net“).

Prehliadače, ktoré nepodporujú HTML5, budú považovať type="url" za type="text" , takže použitie tohto typu pre všetky polia, do ktorých je potrebné zadať webovú adresu, nie je nevýhodné.

Čísla ako počítadlá

Ďalší krok: čísla. Žiadosť o číslo je zložitejšia ako žiadosť o e-mail alebo webovú adresu. Po prvé, čísla sú zložitejšie, ako si myslíte. Rýchlo vyberte číslo. -1? Nie, myslel som číslo medzi 1 a 10,7 ½? Nie, nie, nebuď zlomok, hlupák. π? Teraz ste si vybrali iracionálne číslo.

Chcel by som poznamenať, že sa vás často nepýtajú „len číslo“. Je pravdepodobnejšie, že si vypýtajú číslo v určitom rozsahu. Môžete chcieť len určité typy čísel v tomto rozsahu - možno celé čísla, ale nie zlomky alebo desatinné čísla alebo niečo exotickejšie, napríklad násobky 10. HTML5 to všetko pokrýva.

Vyberte si číslo, takmer akékoľvek

Pozrime sa na jeden atribút naraz.

  • type="číslo" znamená, že ide o číselné pole.
  • min="0" určuje minimálnu povolenú hodnotu pre toto pole.
  • max="10" je maximálna povolená hodnota.
  • step="2" v kombinácii s minimálnou hodnotou definuje platné čísla v rozsahu: 0, 2, 4 atď., až po maximálnu hodnotu.
  • value="6" predvolená hodnota. Malo by vám to byť povedomé, ide o rovnaký atribút, ktorý sa vždy používa na definovanie hodnôt polí formulára. Spomínam to tu ako východiskový bod, na ktorom je založené HTML5 predchádzajúce verzie HTML. Nemusíte sa znova učiť robiť to, čo ste už urobili.

Toto je kód pre číselné pole. Majte na pamäti, že všetky tieto atribúty sú voliteľné. Ak máte minimum, ale nie maximum, môžete zadať atribút min, ale nie atribút max. Predvolená hodnota kroku je 1 a atribút kroku môžete vynechať, kým nebude potrebná iná hodnota kroku. Ak neexistuje žiadna predvolená hodnota, atribút value môže byť prázdny riadok alebo dokonca úplne vynechať.

HTML5 však nekončí. Za rovnako nízke nízka cena slobodu, ktorú získate pomocou týchto pohodlných metód JavaScriptu.

  • input.stepUp(n) zvýši hodnotu poľa o n.
  • input.stepDown(n) zníži hodnotu poľa o n.
  • input.valueAsNumber vráti aktuálnu hodnotu ako číslo s pohyblivou rádovou čiarkou (vlastnosťou input.value je vždy reťazec).

Problémy so zobrazením? Správne rozhranie na správu čísel je v prehliadačoch implementované inak. Na iPhone, kde je písanie náročné, prehliadač opäť optimalizuje virtuálnu klávesnicu na zadávanie čísel.

V počítačovej verzii Opery sa pole type="number" zobrazuje ako počítadlo s malými šípkami nahor a nadol, na ktoré môžete kliknúť a zmeniť hodnoty.

Opera rešpektuje atribúty min , max a step, takže vždy dosiahnete prijateľnú číselnú hodnotu. Ak zvýšite hodnotu na maximum, šípka nahor na počítadle sa zmení na sivú.

Rovnako ako všetky ostatné vstupné polia, o ktorých som hovoril v tejto kapitole, prehliadače, ktoré nepodporujú type="číslo" s nimi budú zaobchádzať ako s type="text" . Predvolená hodnota sa zobrazí v poli (tak, ako je uložená v atribúte value), ale ostatné atribúty ako min a max budú ignorované. Môžete ich implementovať sami alebo použiť rámec JavaScriptu, ktorý už implementuje správu počítadiel. Najprv skontrolujte tu.

if (! .inputtypes.number) (
// žiadna natívna podpora pre pole typ=číslo
// môže skúsiť Dojo alebo iný rámec JavaScriptu
}

Čísla ako posuvník

Počítadlo nie je jediná cesta reprezentácie číselného vstupu. Pravdepodobne ste tiež videli posúvač, ktorý vyzerá takto.

Teraz môžete mať na formulári aj posúvač. Kód vyzerá zvláštne podobne ako pole počítadla.


Všetky dostupné atribúty sú rovnaké ako pre type="number" - min , max , step , value - a znamenajú to isté. Jediný rozdiel je používateľské rozhranie. Očakáva sa, že prehliadače namiesto vstupného poľa zobrazia ako posuvník type="range". V čase písania najnovšie verzie S týmto pracovali Safari, Chrome a Opera. Bohužiaľ, iPhone sa zobrazuje ako jednoduchý textové pole, neoptimalizuje ani svoju klávesnicu na obrazovke na zadávanie čísel. Všetky ostatné prehliadače jednoducho považujú pole za type="text" , takže nie je dôvod začať tento typ okamžite používať.

HTML 4 neobsahuje výber dátumu cez kalendár. Rámce JavaScript vám umožňujú obísť to (Dojo, jQuery UI, YUI, Closure Library), ale, samozrejme, každé z týchto riešení vyžaduje „implementáciu“ rámca pre akýkoľvek vstavaný kalendár.

HTML5 konečne definuje spôsob, ako povoliť natívny výber dátumu bez akéhokoľvek skriptovania. V skutočnosti je ich šesť: dátum, mesiac, týždeň, čas, dátum + čas a dátum + čas s časovým pásmom.

Zatiaľ je podpora... mizivá.

Podpora výberu dátumu Zadajte Opera Iné prehliadače
type="date" 9.0+ -
type="mesiac" 9.0+ -
type="týždeň" 9.0+ -
type="time" 9.0+ -
type="datetime" 9.0+ -
type="datetime-local" 9.0+ -

Opera sa zobrazuje takto:

Ak potrebujete čas spolu s dátumom, Opera tiež podporuje:

Ak potrebujete mesiac plus rok (napríklad dátum vypršania platnosti kreditnej karty), Opera môže zobraziť:

Menej bežné, ale dostupné je výber týždňa v roku pomocou:

V neposlednom rade je načasovanie s:

Výber dátumu s alternatívou




...

var i = document.createElement("vstup");
i.setAttribute("typ", "dátum");
if (i.type == "text") (
// Žiadna podpora natívneho výberu dátumu :(
// Na vytvorenie použite Dojo/jQueryUI/YUI/Closure,
// potom dynamicky nahraďte prvok
}

Je pravdepodobné, že ostatné prehliadače budú nakoniec podporovať tieto typy. Podobne ako type="email" a iné typy sa tieto polia formulára zobrazia ako obyčajný text v prehliadačoch, ktoré nerozpoznajú type="date" a jeho varianty. Ak chcete, môžete jednoducho použiť , urobiť radosť používateľom Opery a počkať, kým to ostatné prehliadače dobehnú. Je realistickejšie použiť to, ale skontrolujte, či má prehliadač natívnu podporu výberu dátumu a zahrňte alternatívne riešenie vo forme skriptu podľa vášho výberu (Dojo, jQuery UI, YUI, Closure Library alebo iné možnosti).

Vyhľadávacie okno

Takže hľadaj. Nielen vyhľadávania z Google alebo Yahoo (teda aj tie). Zamyslite sa nad ľubovoľným vyhľadávacím poľom, na akejkoľvek stránke, na akejkoľvek webovej lokalite. Amazon má vyhľadávacie pole, Yandex má vyhľadávacie pole a väčšina blogov tiež. Ako sa vyrábajú? , rovnako ako akékoľvek iné textové pole na webe. Poďme to napraviť.

Hľadajte novú generáciu




V niektorých prehliadačoch si nevšimnete žiadny rozdiel od bežného textového poľa. Ale ak používate Safari na Mac OS X, bude to vyzerať takto.

Našli ste rozdiel? Vstupné pole má zaoblené rohy! Viem, viem, len ťažko dokážeš ovládať svoje pocity. Ale počkajte, je toho viac! Keď do poľa začnete písať type="search", Safari vloží na pravú stranu okna malé tlačidlo "x". Kliknutím na „x“ vymažete obsah poľa. Google Chrome, ktorý má pod kapotou rovnakú techniku, sa správa rovnako. Oba tieto malé triky vyzerajú a správajú sa podobne ako natívne vyhľadávanie v iTunes a iných klientskych aplikáciách Mac OS X.

Apple.com používa vyhľadávanie na stránke, aby pomohla stránkam sprostredkovať pocit „milovania papagájov“. Ale tu nie je nič špecifické pre Mac. Je to len kód, takže každý prehliadač na každej platforme si môže vybrať spôsob vykresľovania podľa konvencií platformy. Rovnako ako všetky ostatné nové typy, prehliadače, ktoré nerozpoznajú type="search" budú s ním zaobchádzať ako s type="text" , takže nie je absolútne žiadny dôvod, aby ste dnes nezačali používať type="search" pre všetky svoje vyhľadávacie polia .

Hovorí profesor Markup

V predvolenom nastavení Safari nepoužíva väčšinu štýlov. Ak chcete prinútiť Safari, aby s vyhľadávacím poľom zaobchádzalo ako s bežným textovým poľom (takže môžete použiť svoje vlastné štýly), pridajte toto pravidlo do svojej šablóny štýlov.

vstup(
-webkit-vzhľad:textové pole;
}

Ďakujem Johnovi Laneovi, že ma naučil tento trik.

Výber farieb

HTML5 tiež definuje pole, ktoré vám umožňuje vybrať farbu a vracia ju v šestnástkovej sústave. Žiadny prehliadač nepodporuje výber farieb, čo je škoda, pretože palety Mac OS som vždy miloval. Možno jedného dňa.

Poznámka prekladateľ Opera 11 túto funkciu podporuje.

Overenie formulára

V tejto kapitole som hovoril o nových prvkoch formulárov a nových funkciách, ako je automatické zaostrovanie, ale nespomenul som snáď najvzrušujúcejšiu časť formulárov HTML5: automatická kontrola vstupné Data. Uvažujme bežné problémy zadaním e-mailovej adresy do formulára. Pravdepodobne máte overenie na strane klienta prostredníctvom JavaScriptu, po ktorom nasleduje overenie na strane servera prostredníctvom PHP, Pythonu alebo iného jazyka na strane servera. HTML5 nikdy nenahradí overenie na strane servera, ale jedného dňa môže nahradiť overenie na strane klienta.

Existujú dva veľké problémy s overením e-mailovej adresy v JavaScripte:

  • Malý počet vašich návštevníkov (pravdepodobne okolo 10 %) nemá povolený JavaScript.
  • Dostanete nesprávnu adresu.
  • Vážne, pomýlite si adresu. Určenie, že sada náhodných znakov je platná e-mailová adresa, je neuveriteľne ťažké. Čím usilovnejšie sa pozeráte, tým je to ťažšie. Spomenul som, že je to veľmi, veľmi ťažké? Nie je jednoduchšie zavesiť túto bolesť hlavy na váš prehliadač?

    Opera kontroluje type="email"

    Tu je snímka obrazovky z Opery 11, aj keď funkcia je prítomná od Opery 9. Kód zahŕňa nastavenie e-mailovej hodnoty pre atribút type. Keď sa používateľ Opery pokúsi odoslať formulár pomocou , prehliadač automaticky skontroluje e-mailovú adresu, aj keď sú skripty zakázané.

    HTML5 tiež ponúka overenie webových adries pomocou poľa a čísel pomocou . Overenie čísla zohľadňuje hodnoty atribútov min a max, takže prehliadače vám neumožnia odoslať formulár, ak zadáte príliš veľké číslo.

    Neexistuje žiadny kód, ktorý by umožňoval overenie formulára v HTML5, robí sa to štandardne. Ak chcete zakázať overenie, použite atribút novalidate.

    Neskúšaj ma




    Prehliadače pomaly začleňovali podporu overovania formulárov v HTML5. Firefox 4 bude mať plnú podporu. Bohužiaľ, Safari a Chrome sú implementované len čiastočne: overujú prvky formulára, ale nezobrazujú žiadne viditeľné správy, keď overenie poľa formulára zlyhá. Inými slovami, ak zadáte nesprávny (alebo nesprávne napísaný) dátum v type="date" , Safari a Chrome neodošlú formulár, ale nepovedia vám, prečo to tak nebolo. Zamerajú sa na pole, ktoré obsahuje neplatnú hodnotu, ale nezobrazia chybové hlásenie ako Opera alebo Firefox 4.

    Povinné políčka podpora
    I.E. Firefox Safari Chrome Opera iPhone Android
    - 4.0+ - - 9.0+ - -

    Overenie formulára v HTML5 nie je obmedzené na typ každého poľa. Môžete tiež určiť, že niektoré polia sú povinné. Pred odoslaním formulára musia mať tieto polia hodnotu.

    Kód pre povinné polia je taký jednoduchý, ako len môže byť.




    Prehliadače môžu zmeniť pôvodný vzhľad požadovaného poľa. Tu je príklad toho, ako to vyzerá v prehliadači Mozilla Firefox 4.0.

    Okrem toho, ak sa pokúsite odoslať formulár bez vyplnenia požadovanej hodnoty, Firefox zobrazí informačnú lištu s informáciou, že pole je povinné a nemôže byť prázdne.

    Generovanie odpovede z ovládačov

    Potom, čo kontrolór dokončí spracovanie požiadavky, zvyčajne potrebuje vygenerovať odpoveď. Keď vytvoríme nízkoúrovňový kontrolér priamou implementáciou rozhrania IController, musíme prevziať zodpovednosť za každý aspekt spracovania požiadaviek vrátane generovania odpovede klientovi.

    Ak chcete napríklad odoslať odpoveď HTML, museli by ste vytvoriť a zostaviť údaje HTML a potom ich odoslať klientovi pomocou metódy Response.Write(). Podobne, ak chcete presmerovať prehliadač používateľa na inú adresu URL, budete musieť zavolať metódu Response.Redirect() a odovzdať jej požadovanú adresu URL. Oba prístupy sú demonštrované v kóde nižšie, ktorý zobrazuje rozšírenia triedy BasicController, ktoré sme vytvorili v staršom článku implementáciou rozhrania IController:

    pomocou System.Web.Mvc; pomocou System.Web.Routing; menný priestor ControllersAndActions.Controllers ( verejná trieda BasicController: IController ( public void Execute(RequestContext requestContext) ( string controller = (string)requestContext.RouteData.Values["controller"]; string action = (string)requestContext.RouteData.Values["action "]; if (action.ToLower() == "presmerovanie") ( requestContext.HttpContext.Response.Redirect("/Derived/Index"); ) else ( requestContext.HttpContext.Response.Write(string.Format("Controller) : (0), Metóda akcie: (1)", ovládač, akcia)); ) ) ) )

    Rovnaký prístup je možné použiť aj v prípade dedenia ovládača z triedy Controller. Trieda HttpResponseBase, ktorá sa vráti pri čítaní vlastnosti requestContext.HttpContext.Response v metóde Execute(), je prístupná prostredníctvom vlastnosti Controller.Response, ako je znázornené v príklade nižšie, ktorý rozširuje triedu DerivedController, tiež vytvorenú predtým dedenie z triedy Controller:

    Používanie systému; pomocou System.Web; pomocou System.Web.Mvc; menný priestor ControllersAndActions.Controllers ( verejná trieda DerivedController: Controller ( public ActionResult Index() ( // ... ) public void ProduceOutput() ( if (Server.MachineName == "ProfesorWeb") Response.Redirect("/Basic/Index" ); else Response.Write("Ovládač: odvodené, metóda akcie: ProduceOutput");

    Metóda ProduceOutput() používa hodnotu vlastnosti Server.MachineName na rozhodnutie, akú odpoveď poslať klientovi. ("ProfessorWeb" je názov môjho vývojového stroja.)

    Hoci tento prístup generovania odpovede používateľovi funguje, je s ním niekoľko problémov:

      Triedy radičov musia obsahovať informácie o HTML štruktúra alebo URL, čo sťažuje čítanie a údržbu tried.

      Kontrolér, ktorý generuje odozvu priamo na výstup, sa ťažko testuje. Budete musieť vytvoriť falošné implementácie objektu Response a potom byť schopný spracovať výstup z radiča, aby ste určili, čo to je. To môže znamenať napríklad potrebu analyzovať HTML značky Kľúčové slová, čo je dlhý a únavný proces.

      Spracovanie malých detailov každej odpovede týmto spôsobom je zložité a náchylné na chyby. Niektorí programátori majú radi absolútnu kontrolu poskytovanú vytvorením nízkoúrovňového ovládača, ale zvyčajne sa to veľmi rýchlo skomplikuje.

    Našťastie má MVC Framework šikovný nástroj, ktorý rieši všetky tieto problémy – výsledky akcií. Nasledujúce časti vysvetľujú a zobrazujú koncept výsledkov akcie rôznymi spôsobmi jeho použitie na generovanie odpovedí z ovládačov.

    Výsledky akcie

    Výsledky akcií v rámci MVC sa používajú na oddelenie vyhlásení o zámere od vykonania zámeru (ospravedlňujeme sa za tautológiu). Koncept sa bude zdať jednoduchý, keď ho pochopíte, ale kvôli určitej nepriamosti trvá nejaký čas, kým ho pochopíte.

    Namiesto toho, aby sa metódy akcie zaoberali priamo objektom Response, vracajú objekt triedy odvodený od ActionResult, ktorý popisuje, aká by mala byť odpoveď z kontroléra – napríklad vykreslenie zobrazenia alebo presmerovanie na inú adresu URL alebo metódu akcie. Avšak (toto je práve tá nepriamosť) odpoveď nie je priamo generovaná. Namiesto toho sa vytvorí objekt ActionResult, ktorý MVC Framework spracuje na vytvorenie výsledku po zavolaní metódy akcie.

    Systém výsledkov akcií je príkladom návrhového vzoru Command. Tento vzor predstavuje scenáre, v ktorých ukladáte a odovzdávate objekty, ktoré popisujú vykonávané operácie.

    Keď MVC Framework prijme objekt ActionResult z metódy akcie, zavolá Metóda ExecuteResult()., definovaný v triede tohto objektu. Implementácia výsledkov akcie potom funguje na objekte Response a generuje výstup, ktorý zodpovedá vášmu zámeru. Aby sme to demonštrovali v praxi, vytvorte priečinok Infrastructure a pridajte doň nový súbor triedy s názvom CustomRedirectResult.cs s vlastnou implementáciou ActionResult, ktorá je znázornená v príklade nižšie:

    pomocou System.Web.Mvc; menný priestor ControllersAndActions.Infrastructure ( verejná trieda CustomRedirectResult: ActionResult ( verejný reťazec Url ( get; set; ) verejné prepísanie void ExecuteResult(ControllerContext context) ( string fullUrl = UrlHelper.GenerateContentUrl(Url, context.HttpContext.Respontse.Context); context.HttpContext (fullUrl);

    Táto trieda je založená na spôsobe fungovania triedy System.Web.Mvc.RedirectResult. Jedna z výhod open source Rámec MVC je o schopnosti preskúmať vnútorné fungovanie čohokoľvek. Trieda CustomRedirectResult je oveľa jednoduchšia ako jej ekvivalent MVC, ale na účely tohto článku je dostatočná.

    Pri vytváraní inštancie triedy RedirectResult odovzdávame adresu URL, na ktorú má byť používateľ presmerovaný. Metóda ExecuteResult(), ktorá bude vykonaná rámcom MVC po dokončení metódy akcie, prijme objekt Response pre požiadavku prostredníctvom objektu ControllerContext poskytnutého rámcom a zavolá buď metódu RedirectPermanent() alebo metódu Redirect() (toto je presne to, čo sa urobilo v rámci nízkoúrovňovej implementácie IController v príklade vyššie v článku).

    Použitie triedy CustomRedirectResult je znázornené v príklade nižšie, ktorý ukazuje zmeny, ktoré boli vykonané na odvodenom ovládači:

    // ... using ControllersAndActions.Infrastructure; menný priestor ControllersAndActions.Controllers ( public class DerivedController: Controller ( public ActionResult Index() ( // ... ) public ActionResult ProduceOutput() ( if (Server.MachineName == "MyMachineName") vráti nový CustomRedirectResult ( Url = "/Basic/ Index" ); else ( Response.Write("Ovládač: odvodené, metóda akcie: ProduceOutput"); return null; ) ) ) )

    Všimnite si, že sme boli nútení zmeniť výsledok metódy akcie na návrat ActionResult. Vrátime hodnotu null, ak nechceme, aby MVC Framework urobil čokoľvek, keď sa vykoná naša metóda akcie, čo sme urobili, ak sa inštancia CustomRedirectResult nevrátila.

    Testovanie jednotiek Ovládače a akcie

    Mnohé časti rámca MVC sú navrhnuté tak, aby uľahčili testovanie jednotiek, a to platí najmä pre akcie a ovládače. Existuje niekoľko dôvodov pre túto podporu:

    Akcie a ovládače môžete testovať mimo webového servera. Kontextové objekty sú prístupné prostredníctvom ich základných tried (ako je HttpRequestBase), čo sa dá ľahko zosmiešniť.

    Ak chcete otestovať výsledky metódy akcie, nemusíte analyzovať označenie HTML. Aby ste sa uistili, že získate očakávané výsledky, môžete skontrolovať vrátený objekt ActionResult.

    Emulácia požiadaviek klientov nie je potrebná. Systém viazania modelu MVC Framework vám umožňuje písať metódy akcií, ktoré dostávajú vstup vo svojich parametroch. Ak chcete otestovať metódu akcie, jednoducho ju zavoláte priamo a poskytnete príslušné hodnoty parametrov.

    Budúce články o generovaní údajov z kontrolórov vám ukážu, ako vytvoriť jednotkové testy pre rôzne typy výsledkov akcií.

    Nezabudnite, že testovanie jednotiek je len časť obrazu. Zložité správanie v aplikácii nastáva, keď sa metódy akcie volajú postupne. Jednotkové testovanie funguje najlepšie v kombinácii s inými testovacími prístupmi.

    Teraz, keď viete, ako funguje špeciálny výsledok akcie presmerovania, môžete prejsť na jeho ekvivalent, ktorý ponúka rámec MVC, ktorý je výkonnejší a bol dôkladne testovaný spoločnosťou Microsoft. Požadovaná zmena odvodeného ovládača je uvedená nižšie:

    // ... public ActionResult ProduceOutput() ( return new RedirectResult("/Basic/Index"); ) // ...

    Podmienený príkaz bol odstránený z metódy akcie, čo znamená, že po spustení aplikácie a prechode na URL ako /Derived/ProduceOutput bude prehliadač presmerovaný na URL ako /Basic/Index. Na zjednodušenie kódu metódy akcie obsahuje trieda Controller pohodlné metódy na generovanie rôznych druhov objektov ActionResult. Takže napríklad môžeme dosiahnuť rovnaký efekt ako vo vyššie uvedenom príklade vrátením výsledku metódy Redirect():

    // ... public ActionResult ProduceOutput() ( return Redirect("/Basic/Index"); ) // ...

    Na systéme výsledkov akcií nie je nič mimoriadne zložité, no v konečnom dôsledku pomáha vytvárať jednoduchší, čistejší a konzistentnejší kód, ktorý sa dá ľahko čítať a testovať. Napríklad v prípade presmerovania môžete jednoducho skontrolovať, či metóda akcie vracia inštanciu RedirectResult, ktorej vlastnosť Url obsahuje očakávaný cieľ.

    Rámec MVC definuje mnoho vstavaných typov výsledkov akcií, ktoré sú popísané v tabuľke nižšie:

    Vstavané typy ActionResult Typ Popis Pomocné metódy triedy Controller
    ViewResult

    Vykreslí zadanú alebo štandardnú šablónu zobrazenia

    Vyhliadka()
    PartialViewResult

    Vykreslí zadanú alebo štandardnú šablónu čiastočného zobrazenia

    PartialView()
    RedirectToRouteResult

    Problémy HTTP presmerovanie 301 alebo 302 na metódu akcie alebo zadaný záznam trasy, vygenerovanie adresy URL podľa konfigurácie smerovania

    RedirectToAction()
    RedirectToActionPermanent()
    RedirectToRoute()
    RedirectToRoutePermanent()
    RedirectResult

    Vydáva presmerovanie HTTP 301 alebo 302 na danú adresu URL

    Redirect()
    RedirectPermanent()
    ContentResult

    Vráti do prehliadača neformátované textové údaje a navyše nastaví hlavičku typu obsahu

    obsah()
    FileResult

    Prenáša binárne dáta (napríklad súbor na disku alebo bajtové pole v pamäti) priamo do prehliadača

    súbor()
    JsonResult

    Serializuje objekt .NET na formát JSON a odošle ho ako odpoveď. Odpovede tohto typu sa častejšie generujú pri použití nástrojov Web API a AJAX

    Json()
    JavaScriptResult

    Odošle časť zdrojového kódu JavaScript, ktorý má prehliadač spustiť

    JavaScript()
    HttpUnauthorizedResult

    Nastaví stavový kód odpovede HTTP na 401 (čo znamená „neoprávnené“), čo spôsobí, že zavedený mechanizmus overovania (overenie pomocou formulárov alebo overenie systému Windows) vyzve návštevníka, aby sa prihlásil

    Nie
    HttpNotFoundResult

    Návraty Chyba HTTP s kódom 404 - Nenájdené (nenájdené)

    HttpNotFound()
    HttpStatusCodeResult

    Vráti zadaný kód HTTP

    Nie
    EmptyResult

    Ničnerobenie

    Nie

    Všetky tieto typy sú odvodené od triedy ActionResult a mnohé z nich majú pohodlné pomocné metódy v triede Controller. Využitie týchto typov výsledkov si ukážeme v nasledujúcich článkoch.

    Opísaný objekt je veľmi užitočný a výkonný nástroj. Tento objekt má niekoľko metód, ich popis je uvedený nižšie:

    zbierky: Metódy: Vlastnosti: Response.Cookies zbierka

    Kolekcia súborov cookie nastavuje hodnoty pre súbory cookie. Ak zadané súbory cookie neexistujú, vytvorí ich. Ak súbor cookie existuje, získa novú hodnotu a zničí starú.

    Response.Cookies(cookie) [(kľúč) | . atribúty ] = hodnota

    Možnosti:

    • cookie – názov súboru cookie
    • kľúč - Voliteľný parameter. Ak je zadaný, potom cookie je adresár (vnorený) a kľúč je množina hodnôt.
    • atribúty – Špecifikované informácie o samotných súboroch cookie. Tento parameter môže byť jeden z nasledujúcich:
    • hodnota – určuje hodnotu, ktorá sa má priradiť tomuto kľúču alebo atribútu.
    názovPopis
    doménaIba nahrávanie. Ak je to uvedené, súbory cookie sa odosielajú iba na požiadanie z tejto domény.
    Platnosť vypršíIba nahrávanie. Dátum vypršania platnosti súboru cookie. Tento dátum musí byť nastavený, aby sa do klienta zapisovali cookies HDD po skončení relácie. Ak tento atribút nie je nastavený, predpokladá sa dátum vypršania platnosti súboru cookie aktuálny dátum. Platnosť cookies vyprší ihneď po ukončení relácie.
    HasKeyIba čítanie. Označuje, či súbor cookie obsahuje daný kľúč.
    CestaIba nahrávanie. Ak je to uvedené, súbory cookie sa odosielajú iba na požiadanie z tejto cesty. Ak parameter nie je nastavený, použije sa cesta aplikácie.
    ZabezpečiťIba nahrávanie. Označuje, či budú súbory cookie chránené alebo nie.

    komentár:

    Ak sa kľúčový súbor cookie vytvorí tak, ako je to znázornené v nasledujúcom skripte,

    potom sa odošle nasledujúca hlavička:

    Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=cookies

    Ak priradíte hodnotu súboru mycookie bez použitia kľúčov, potom táto akcia zničí kľúče type1 a type2. Napr.:

    V predchádzajúcom príklade budú kľúče type1 a type2 zničené a ich hodnoty budú stratené. Mycookie bude teraz obsahovať hodnotnú čokoládovú marshmallow.

    Existenciu konkrétneho kľúča môžete skontrolovať aj nasledujúcim spôsobom:

    Ak je zobrazené TRUE, potom takýto kľúč existuje, ak je FALSE, neexistuje.

    Metóda Response.Write

    Response.Write variable_or_value

    Možnosti:

    • variable_or_value – Údaje, ktoré sa majú zobraziť na obrazovke prehliadača prostredníctvom HTML. Tento parameter môže byť akéhokoľvek typu podporovaného VisualBasic Scripting Edition. To znamená, že údaje môžu byť nasledujúcich typov: dátum, reťazec, znak, číselné hodnoty. Význam tento parameter nemôže obsahovať kombinácie %>. Namiesto toho môžete použiť ekvivalentnú kombináciu %\>. Webový server po spustení skriptu prevedie túto sekvenciu na požadovanú.

    Nasledujúci príklad ukazuje, ako metóda Response.write pracuje na výstupe správy pre klienta.

    Poviem ti len: A tvoje meno

    Nasledujúci príklad pridá značku HTML na webovú stránku. Keďže táto metóda nemôže obsahovať kombináciu %>, použijeme postupnosť %\>. Takže príklad skriptu:

    Výstupom bude riadok:

    Metóda Response.Redirect

    Response.Redirect URL (URL – Uniform Resource Locator)

    Možnosti:

    • URL – Parameter je univerzálny deskriptor zdroja. Ukazuje, kedy je potrebné presmerovať prehliadač.

    komentár:

    Akýkoľvek výskyt túto metódu medzi značkami a webovou stránkou budú ignorované. Túto metódu je možné použiť iba v hlavičke HTML stránky. Táto metóda odovzdá hlavičku prehliadaču, ak chýba parameter URL tohto objektu v nasledujúcej forme:

    Adresa URL umiestnenia objektu HTTP/1.0 302

    Metóda Response.End

    Response.End

    komentár:

    Ak bola vlastnosť Response.Buffer nastavená na hodnotu TRUE, potom volanie metódy Response.End vymaže vyrovnávaciu pamäť a vytlačí z nej údaje klientovi. Ak nechcete odosielať údaje používateľovi, mali by ste zavolať nasledujúcu metódu:

    Metóda Response.AddHeader

    Metóda AddHeader pridáva hlavičku HTML so špecifickými hodnotami. Táto metóda vždy pridá novú hlavičku do odpovede do klientskeho prehliadača. Táto metóda nenahrádza existujúcu hlavičku novou. Pridanú hlavičku nie je možné odstrániť.

    Táto metóda sa používa iba pre „pokročilé“ úlohy.

    Response.AddHeader názov_premennej, hodnota

    Možnosti:

    • variable_name - Názov nových parametrov hlavičky HTML.
    • hodnota – Nastaví hodnotu, ktorá sa zapamätá v hlavičke.
    Poznámky:

    Aby metóda fungovala správne, názov_premennej nesmie obsahovať znak podčiarknutia (_). Sada ServerVariables interpretuje podčiarknutie ako pomlčku v hlavičke. Napríklad nasledujúci skript núti server nájsť parameter z hlavičky HTML s názvom MY-HEADER.

    Keďže protokol HTTP vyžaduje, aby všetky parametre hlavičky boli odovzdané pred telom stránky HTML, musíte vo svojom skripte pred začiatkom popisu zavolať metódu AddHeader.... Existuje jedna výnimka. Ak je vlastnosť Buffer nastavená na hodnotu true, môžete AddHeader napísať kdekoľvek v skripte, ale pred prvým volaním metódy Flush. V opačnom prípade vyvolá volanie metódy AddHeader chybu.

    Nasledujúce dva súbory .ASP demonštrujú tento posledný bod.

    váš text na stránke

    IN v tomto príklade stránka nie je uložená vo vyrovnávacej pamäti. Skript funguje, ale AddHeader sa volá predtým, ako server vytvorí výstup HTML pre klienta.

    tu sú nejaké informácie z vašej stránky...

    V druhom príklade je stránka uložená do vyrovnávacej pamäte a výsledkom je, že server nevydáva text klientovi, kým sa neskončí samotný skript alebo kým sa nenarazí na metódu Flush. Túto metódu môžete použiť na odoslanie viacerých kópií niektorého parametra hlavičky s rôznymi hodnotami, ako pri hlavičke WWW-Authenticate.

    Metóda Response.AppendToLog

    Metóda AppendToLog pridá riadok na koniec súboru správy (súboru protokolu) webového servera. Túto metódu môžete volať toľkokrát, koľkokrát potrebujete. Zakaždým, keď zavoláte metódu, zadaný reťazec sa zapíše do súboru správy servera.

    Hodnota Response.AppendToLog

    Možnosti:

    • hodnota – Text, ktorý sa pridá do súboru správy webového servera. Tento riadok nemôže obsahovať znak čiarka (,). Celková dĺžka pridaného riadku by navyše nemala presiahnuť 80 znakov.
    Poznámky:

    Ak chcete použiť túto funkciu, musíte mať povolenú možnosť Dopyt na URI na paneli „Rozšírené vlastnosti protokolovania“ pre tento webový server v IIS.

    Metóda Response.BinaryWrite

    Metóda BinaryWrite vám umožňuje zapisovať špecifikované informácie do aktuálneho výstupu HTTP bez akejkoľvek konverzie znakov. Táto metóda je užitočná na výstup nereťazcových informácií, ako sú binárne údaje požadované aplikáciou.

    Dáta Response.BinaryWrite

    Možnosti:

    • dáta - Dáta určené pre HTTP výstup.

    Ak máte objekt, ktorý vytvára bajtové pole, môžete použiť nasledujúce volanie tejto metódy na odovzdanie tohto poľa nejakej aplikácii spustenej na klientskom počítači.

    Response.Clear method

    Metóda Clear vymaže všetok výstup HTML vo vyrovnávacej pamäti. Táto metóda však nevymaže informácie o vyrovnávacej pamäti súvisiace s hlavičkou. Túto metódu môžete použiť na správu chýb. Vykonanie tejto metódy však bude mať za následok chybu, ak vlastnosť Response.Buffer nie je pravdivá.

    Vlastnosť Response.CacheControl

    Táto vlastnosť prepíše predvolenú hodnotu. Keď nastavíte vlastnosť na Public, Proxy server môže uložiť výstup generovaný ASP do vyrovnávacej pamäte.

    Response.CacheControl [= ovládanie vyrovnávacej pamäte hlavička]

    Možnosti:

    • Hlavička ovládania vyrovnávacej pamäte – Táto možnosť ovládania hlavičky môže byť buď verejná alebo súkromná.
    Vlastnosť Response.CharSet

    Vlastnosť CharSet vám umožňuje pridať názov tabuľky kódov znakov (napríklad WINDOWS-1251) do hlavičky HTML, riadku typu obsahu.

    Response.CharSet code_table_name

    Možnosti:

    • charset_name – reťazec, ktorý špecifikuje znakovú sadu pre túto HTML stránku. Názov tejto kódovej tabuľky sa pridá do hlavičky súboru HTML pod parametrom „typ obsahu“.

    Pre stránku ASP, ktorá nepoužíva vlastnosť Response.Charset, bude parameter "content-type" v hlavičke nasledovný:

    Content-type:text/html

    Ak súbor ASP obsahuje príkaz

    potom v hlavičke bude pole typu obsahu vyzerať takto

    Content-type:text/html; charset=Windows-1251

    komentár:

    Táto funkcia vloží do hlavičky ľubovoľný riadok a nekontroluje jeho platnosť.

    Ak stránka obsahuje niekoľko značiek Response.Charset, potom každá ďalšia nahradí hodnotu svojou vlastnou.

    Vlastnosť Response.ContentType

    Vlastnosť ContentType vám umožňuje určiť typ (typ) obsahu súboru HTML. Ak sa táto vlastnosť nepoužije, predvolene sa použije text/html.

    Response.ContentType [=typ_obsahu]

    Možnosti:

    • content_type – Reťazec popisujúci typ obsahu HTML. Tento reťazec má zvyčajne tvar „typ/podtyp“, kde typ je hlavná kategória obsahu a podtyp označuje typ obsahu. Na získanie úplný zoznam podporované typy – pozrite si dokumentáciu vášho prehliadača alebo špecifikáciu HHTP.

    Nasledujúci príklad ilustruje nastavenie typu obsahu na Channel Definition Format (Push Channels).

    Druhý príklad ukazuje nastavenie vlastnosti na najbežnejšie známe hodnoty.

    Response.Expires property

    Vlastnosť Expires určuje časové obdobie do HTML stránku uložená prehliadačom sa považuje za nevypršenú (doba uloženia). Ak používateľ požaduje od prehliadača stránku uloženú vo vyrovnávacej pamäti, ktorej platnosť ešte nevypršala, prehliadač ju vráti priamo zo svojej vyrovnávacej pamäte.

    Response.Expires [=číslo]

    Možnosti:

    • číslo – množstvo času v minútach, kým sa stránka považuje za „oneskorenú“. Nastavenie tejto hodnoty na 0 spôsobuje táto strana sa okamžite stane „po splatnosti“.

    komentár:

    Ak je táto vlastnosť nastavená na stránke viackrát, použije sa najmenšia hodnota.

    Vlastnosť Response.ExpiresAbsolute

    Vlastnosť ExpiresAbsolute určuje čas a dátum, po ktorom sa stránka HTML uložená v prehliadači považuje za skončenú (doba uchovávania uplynula). Ak používateľ požaduje od prehliadača stránku uloženú vo vyrovnávacej pamäti, ktorej platnosť ešte nevypršala, prehliadač ju vráti priamo zo svojej vyrovnávacej pamäte. Ak je zadaný čas (a je zadaný dátum), potom „dátum vypršania platnosti“ tejto stránky vyprší o polnoci daného dňa. Ak nie je zadaný čas ani dátum, potom sa hodnota priradí podľa dňa a času, kedy bol skript spustený.

    Response.ExpiresAbsolute [= [dátum] [čas]]

    Možnosti:

    • dátum – Označuje dátum vypršania „trvanlivosti“. Formát dátumu musí byť v súlade s normou RFC-1123.
    • čas – označuje čas, kedy vyprší platnosť stránky. Táto hodnota sa pred odoslaním hlavičky klientovi skonvertuje do formátu GMT (Greenwich Mean Time).

    komentár:

    Ak je daná vlastnosť definovaná na stránke viac ako raz, potom sa doba uplynutia „doby uloženia“ považuje za najskoršiu zo všetkých špecifikovaných hodnôt.

    Vlastnosť Response.IsClientConnected

    Táto vlastnosť je len na čítanie, čo znamená, že tejto vlastnosti nemožno priradiť žiadne hodnoty. Táto vlastnosť označuje, či je klient pripojený alebo už nie je pripojený k serveru definovanému v poslednom z Response.Write.

    Response.IsClientConnected()

    komentár:

    Táto vlastnosť vám umožňuje určiť, kedy je používateľ pripojený a kedy je odpojený od servera. Napríklad dĺžka časového obdobia medzi tým, keď server odpovedal a keď klient zadal požiadavku, dáva istotu, že klient je stále pripojený a má zmysel pokračovať vo vykonávaní skriptu.


    Svet bezplatných programov a užitočných tipov
    2024 whatsappss.ru