Autor Zpráva
freeTel
Profil *
Dobrý den, chci se zeptat na problém ohledně paměti prohlížeče. Napíšu text, ale změna se projeví po druhém volání. Hledal jsem na internetu vypnutí cashe v javasrciptu a zase null count :-) Třeba mám jen chybný zápis, ale vše funguje jak má až na dvojí kliknutí. Volám to klasicky: onclick="odeslat()"
function odeslat(){
  var tx = document.form.text.value;
  alert(tx);
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function(){
    if(this.readyState == 4 && this.status == 200){
      document.getElementById("odeslat").innerHTML = this.responseText;
    }
  };
  document.getElementById("odeslat").innerHTML = '<div class="loader"><div><p>Probíhá odesílání e-mailu. Prosím vyčkejte na dokončení procesu.</p><p><img src="/img/preloader.gif"></p></div></div>';
  xmlhttp.open("GET","/php/info.php?text="+tx+"&send=Y",false);
  xmlhttp.send(false);
}
Tomáš123
Profil
freeTel:
Pri vývoji používaj tvrdý reload — Ctrl + R, Ctrl + Shift + R, myslím, že v niektorom prehliadači je tá skratka aj Ctrl + F5 alebo niečo podobné.
freeTel
Profil *
tvrdý reload? To asi v ajaxu nepůjde
Radek9
Profil
freeTel:
Cache se dá obejít tím, že nějakým způsobem změníš adresu. Stačí něco přidat do query. Třeba takhle:
xmlhttp.open("GET", "/php/info.php?text=" + tx + "&send=Y&time=" + Date.now(), true)

Taky určitě nepoužívej synchronní request, dělá to jen problémy. Třetí parametr metody open by měl být true.
freeTel
Profil *
Chová se to úplně stejně. Ono to zasekává javascript. Ten potřebuje refresh 2x. php vypisuje doře. Zjistil jsem to testem na alert. Tam mi to vypisuje dobře až po druhé události
Radek9
Profil
freeTel:
Ono to zasekává javascript.
Můžeš to zkusit lépe popsat? V tomhle kusu kódu nevidím momentálně nic, co by mělo způsobovat problém. Případně dodej odkaz na živou ukázku.
freeTel
Profil *
Mám to na localhostu. V textarea napíšu text, ale při přvním volání onclick="odeslat()" mi nevypíše v alertu nic až při druhém volání (onclick)
  var tx = document.form.text.value;
  alert(tx);
Radek9
Profil
freeTel:
Mám to na localhostu.
Zkus zprovoznit nějakou minimální živou ukázku. Jinak se nehneme.

V textarea napíšu text, ale při přvním volání onclick="odeslat()" mi nevypíše v alertu nic až při druhém volání (onclick)
V tom případě není problém v AJAXu ani v keši.
freeTel
Profil *
To je zvláštní, že v ukázce to maká jak má. www.w3schools.com/code/tryit.asp?filename=GDER32C4A6C3


už vím, kde je problém. Kříží se mi to s javascriptem WYSIWYG

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0