Autor | Zpráva | ||
---|---|---|---|
Daniel47 Profil |
Firibix:
Takže řešit, že se diskuze nezobrazí v starších verzí vůbec nevadí, že? Mě funguje moje diskuze pouze v IE10 a IE11. Starší verze nefungují... |
||
anonym_ Profil * |
#2 · Zasláno: 20. 10. 2020, 20:43:53
Daniel47:
Nnei důvod, aby se tam diskuze nezobrazila. Maximálně nebude ajaxova, pokud to neumíš napsat poradně. |
||
Daniel47 Profil |
#3 · Zasláno: 21. 10. 2020, 12:05:19
anonym:
Ajaxem se stáhnou data diskuze a ty data se pak vypíšou do stránky. Problém je od IE 9 a níž to nefunguje. |
||
Trejpa Profil |
#4 · Zasláno: 21. 10. 2020, 12:18:54
Daniel47:
„Ajaxem se stáhnou data diskuze“ Myslím, že chyba není v IE, ale v přístupu programátora. Stránka je uložena nebo se na základě parametrů vytváří primárně na straně serveru. Posílá se uživateli se všemi informacemi jako HTML. Ajaxem se podle potřeby dotahují změny/rozdíly pouze v případě, že je nutná aktualizace informací na stránce v reálném čase. |
||
Daniel47 Profil |
Trejpa:
Pomocí parametru se stránka vytváří na serveru. Ta se pak zakóduje do base64 a hodí se to do JSONu i s dalšími informacemi. A pak JavaScript stáhne soubor JSON a dekóduje base64 na html. A to se následně vykreslí na stránku. Odkaz na json soubor zde: dvolt.cz/data-diskuze?q-int=3 |
||
Firibix Profil |
#6 · Zasláno: 21. 10. 2020, 12:51:52
Reakce na Daniela47:
„zakóduje do base64“ To je velmi neefektivní přístup. Zaprvé zbytečně plýtváš výkon serveru i návštěvníka, když musejí base64 enkódovat/dekódovat. Zadruhé tím zbytečně zvyšuješ objem dat, který se musí přenášet. HTML zakódované jako base64 je větší než původní kód a nedá se efektivně komprimovat. Pokud potřebuješ posílat vygenerované HTML, posílej ho normálně v plaintextu. Otevři si v Exploreru nástroje pro vývojáře (klávesa F12) a podívej se, co ten tvůj AJAX vypisuje v konzoli za chybu. Pak se jí můžeš pokusit odstranit. Není důvod, aby jednoduchý XMLHttpRequest nefungoval i v Internet Exploreru.
|
||
Daniel47 Profil |
Firibix:
Taky si myslím co jsem udělal, že je to blbost. Tak to změním a rozdělím HTML kód do plaintextu a další informace dám do JSONu. A vyřeším podporu i pro starší verze než je IE10. A ještě děkuji za odpověď! |
||
Firibix Profil |
#8 · Zasláno: 21. 10. 2020, 13:47:02
Reakce na Daniela47:
Tak jsem to nemyslel, HTML můžeš nechat v JSONu, jen ho tam zbytečně nekóduj do base64. |
||
Daniel47 Profil |
Firibix:
Nemůžu udělat, protože by to nefungovalo. JSON: { "html" : "<div class="test">Nějaký text</div>", "anitohle" : "<div onclick="document.getElementById('Neco').value = 'BlaBlaBla';">Klikni</div>" } Prostě by to nefungovalo... Nebo jo? |
||
Radek9 Profil |
#10 · Zasláno: 21. 10. 2020, 14:30:48
Daniel47:
Jak ten JSON vytváříš? Použij normálně json_encode, to ti zajistí i správné escapování. |
||
Daniel47 Profil |
Radek9:
Takhle třeba: PHP: header("Content-Type: application/json; charset=utf-8"); echo(' {'.PHP_EOL); echo(' "success" : false,'.PHP_EOL); echo(' "errors" : "wrong parameter"'); echo(PHP_EOL.' }'); Že je to špatně?! :D |
||
blaaablaaa Profil |
#12 · Zasláno: 21. 10. 2020, 14:39:19
Daniel47:
$ret = [ 'success' => false, 'errors' => 'wrong parameter' ]; echo json_encode($ret); |
||
Radek9 Profil |
Daniel47:
Ano. echo json_encode([ "success" => false, "errors": "wrong parameter", "html": $nějakáProměnnáObsahujícíHTML ]); Edit: Hehe, pozdě. |
||
Daniel47 Profil |
blaaablaaa, Radek9:
Díky, ale co když budou v html obě věci " a '? A to co přesně znamená v JSONu: =>
??? |
||
anonym_ Profil * |
#15 · Zasláno: 21. 10. 2020, 15:06:40
Daniel47:
To => nepatří do jsonu, ale do PHP. Je to v kontextu PHP kódu, jen náhodou ve funkci tvořící json. Nauč se prosím základy (absolutní základy) technologii, s nimiž chceš pracovat (PHP, js) a pak se vrat s případnými dotazy. |
||
Daniel47 Profil |
#16 · Zasláno: 21. 10. 2020, 15:39:00
anonym:
Díky, to jsem nevěděl. |
||
Časová prodleva: 4 roky
|
0