Diskuze: ASP - Code Behind
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 37 zpráv z 37.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Mě stále nedochází, jak chceš mít timer na serveru. Stránka se na serveru sestaví, okamžitě se pošle prohlížeči a skript se zastaví. Ten timer se nikdy nespustí. Toto musíš dělat u klienta přes JS:
Pokud šňůrou myslíš Web Forms, tak to mají nějak nasimulované. IMHO je návrh Web Forms špatně, zbytečně se snaží za každou cenu nasimulovat určitý přístup, který se na web vůbec nehodí a hlavně ani není potřeba. Tohle by fungovat prostě nemělo, udělej to přes JavaScript.
Mám takový dojem, že to generuje JavaScript, jinak to nevidím. @metasax@ zkus si to napsat sám v JS. To bude myslím lepší.
Jenže to má háček - timer musí být na serveru a JS musí být u
klienta... 
A kde jsi sebral, že Javascript musí být u klienta? Je spousta serverů, které Javascript používají.
Když dám ve script tagu runat, nic uvnitř nejde - vše zrudne...
Vím, že to jde - ale v mém příadě to nejde - ani by ty hodiny nešly...
Tak s tím musím nesouhlasit. Timer nemá na serveru co dělat (nevztahuj si to k ASP, ale spíš obecně). Když chceš něco dynamicky měnit bez obnovení stránky, musíš použít klienta.
var hodiny = $('#hodiny');
setInterval(function() {
var date = new Date();
hodiny.text( date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() );
}, 1000);
Jaké hodiny? K čemu? Ty se snažíš dělat na serveru hodiny? Vždyť je nikdo nepotřebuje.
Server ti pouze vygeneruje stránku, to je jednorázová operace, jakmile dorazí ke klientovi do prohlížeče, tak již se serverem nemáš spojení. Timer bude v JavaScriptu a výpis času bude také v JavaScriptu. Oboje u klienta.
Tohle je přesně proč nemám rád Web Forms, protože blbnou vývojáře a
ten pak neví, jak HTTP protokol funguje
Zapomeň chvilku na ASPčko a použij ten kód od Drahoše.
Ještě jsi nám nenapsal, co vlastně chceš dělat, k čemu ten timer či runat potřebuješ a jaký má být výsledek. Když ani nedokážeš specifikovat zadání, tak se těžko radí. Podle mne se snažíš vyrobit nesmysl.
Podívej se nahoru - ptal jsem se, proč mi nejde kód, který běžně používám...
Děkuji - mám ale problém - nemohu nějak dostat element z id labelu - zkusul jsem normálně jen getElementById(id labelu) - a pak:
getElementById('<%= LabelClock.ClientID %>')
Ani jedno nefunguje - jak na to? Děkuji.
Respektive nevím, kde je problém - prostě se mi neobjevuje žádný text...
Tak ještě jednou, zapomeň na ASPčko
Udělej si prázdnou
HTML stránku a tam si to odlaď. Potom to teprve zakomponuj do
ASP.NET.
No to je vidět, že ASP nepoužíváš... Napsal jsem vše potřebné...
Možná nemáš ten prvek ještě načtený. V JavaScriptu se musí čekat na DOM, pokud s ním chceš manipulovat nebo ten javascript musíš umístit pod daný prvek (HTML dokument se i s JS zpracovává odshora dolů). Pokud to máš v externím souboru, použij window.onload = function() { /** Tvůj JS kód */ } Jinak doporučuji používat jQuery, VisualStudio ti ji tam i samo dodá.
Nenapadá tě, jak to otestovat? Takhle jsem úplně slepý - nemám tucha...

Řekl bych že tak, že to bude fungovat. Nerozumím otázce, stačí ten Drahošův kód vložit do HTML stránky, připojit jQuery a dát tam nějaký div s příslušným ID.
Máš pravdu, ASP nepoužívám. Jede jen na minoritní platformě a je obestřeno hromadou záhad.
Své otázky volím tak, abys sám přišel na řešení svého problému.
Mám jQuery, mám div s ID clock a kód hoře:
<script type="text/javascript">
setInterval(function () { var hodiny = $('#clock'); var date = new Date(); hodiny.text( date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() ); }, 1000););
</script>
A nic se neděje...
Tak ho dej před
</body>
Nebo do události DOM ready.
Vyzkoušel jsem všechny polohy
, a je to timer - mělo by být jedno, zda je stránka načetlá -
časem se načte a pak by se měl začít měnit text...
Chtělo by se to kouknou do konzole. Máš tam středník a závorku navíc.
Kdybys ty kódy formátoval, viděl bys to
Tady je snad funkční kód 
<script type="text/javascript">
setInterval(function() {
var hodiny = $('#clock');
var date = new Date();
hodiny.text( date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds() );
}, 1000);
</script>
Nejsem si jistý, jestli je to jedno, protože se ti nevrátí ten element a ty s ním pracuješ, hodí to chybu a ten timer se nemusí zavést. Často jedna chyba zabije zavedení celého skriptu.
V tomhle případě to ani nevypíše error. jQuery si totiž spojené prvky ukládá do pole. To by v případě, že element ještě není načten, bylo prázdné, takže by se jQuery ani nepokusilo někde měnit text. Pokud by použil klasický DOM, ukončilo by to jednu anonymní funkci TypeErrorem. Interval už by ale byl zaregistrovaný, takže by se prováděl dál.
Zobrazeno 37 zpráv z 37.