Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 12520|Vastaus: 2

[Jquery] [Käänny] jQuery.getJSON-välimuistiongelmaan

[Kopioi linkki]
Julkaistu 5.9.2015 10.21.58 | | |
jqueryn getJson-menetelmä lukee saman pyynnön suoraan välimuistista ensimmäisen palvelimelle tehdyn pyynnön jälkeen palautettujen tietojen saamiseksi, eikä enää pyydä tietokantaa.

Näin sen voi korjata:

1 Tee URL-osoitteesta erilainen jokaiselle puhelulle
Menetelmä: Lisää parametriin satunnaisluku.
Esimerkki 1:
jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){}
Esimerkki 2:
"xxx.aspx?randID="+Math.random
Esimerkki 3:
"xxx.aspx?randID="+ escape(new Date())
2 Aseta välimuisti vääräksi
$.ajax välimuistiton versio:
$.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){
alert(msg);
}
});
3. Lisää seuraava väite labels.html-tiedoston yläosaan:

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

<META HTTP-EQUIV="Expires" CONTENT="-1">
4. Load-funktio ei voi kutsua pelkästään HTML:ää, vaan myös skriptiä, kuten labels.php, voit käyttää php-tiedoston otsikkofunktiota:

<?php

header("Cache-Control: no-cache, must-revalidate");

?>
5 Käytä postia hankimisen sijaan.
Kun käytät Post-menetelmää, sinun tulee kiinnittää huomiota:
Aseta otsikon Context-Type application/x-www-form-urlencode -muotoon varmistaaksesi, että palvelin tietää entiteetissä olevan parametrimuuttujia. Yleensä käytetään XmlHttpRequest-objektin SetRequestHeader-tiedostoa ("Context-Type","application/x-www- form-urlencoded); ")。 Esimerkki:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Parametri on avain-arvopari, joka vastaa nimeä/arvoa, ja jokainen arvopari on erotettu >-merkillä. Esimerkiksi, var name=abc&sex=man&age=18, kiinnitä huomiota var name=update.php?

abc&sex=man&age=18 ja var name=?abc&sex=man&age=18 on kirjoitettu väärin;
Argumentti lähetetään Send-menetelmällä, esim. xmlHttp.send(name); Jos se on get-metodi, suoraan xmlHttp.send(null);

Palvelinpuolen pyyntöparametri erottaa Get ja Post. Jos se on get-metodi, niin $username = $_GET["käyttäjänimi"]; Jos kyseessä on postausmenetelmä, niin $username = $_POST["käyttäjänimi"];
6 Lisää otsikko ("Cache-Control: no-cache, must-reva lidate") palvelinpuolelle;
7 Lisää xmlHttpRequest.setRequestHeader("If-Modified-Since","0") ennen kuin ajax lähettää pyynnön;
8 Lisää xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") ennen kuin ajax lähettää pyynnön;




Edellinen:c# Muunna \u64CD\u4F5C\u6210\u529F kiinaksi "Operaatio onnistunut"
Seuraava:Validate jQuery html5Validate plugin, joka perustuu HTML5-lomakkeisiin
 Vuokraisäntä| Julkaistu 5.9.2015 10.23.09 |
url?käyttäjänimi=testi&aaa= Math.random()
 Vuokraisäntä| Julkaistu 5.9.2015 10.24.24 |
$.getJson-menetelmä Kun samaa sivua pyydetään toistuvasti, välimuistista ladataan vain data, ja URL-osoitetta täytyy seurata dynaamisilla parametreilla joka kerta, kun se ladataan uudelleen.
$.getJson('a.ashx?t='+new Date() ,'{a:b}',fun.... )
Parametrien muuttaminen parametrilistassa on virheellistä.
function changeValidateCode(obj) {
//获取当前的时间作为参数,无具体意义
var timenow = uusi Date().getTime();
//每次请求需要一个不同的参数,否则可能会返回同样的验证码
Tämä liittyy selaimen välimuistimekanismiin, ja voit myös asettaa sivun niin, ettei välimuistia ole, jolloin tätä parametria ei käytetä.
obj.src='rand.action?d='+timenow;
}
<img id='rand' src='rand.action?t=<%=new Date().getTime() %>' onclick='changeValidateCode(this)' title='Etkö näe selvästi? Vaihda yksi! ' width='50' height='22'/>
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com