See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 12520|Vastuse: 2

[Jquery] [Pööra] jQuery.getJSON vahemällu salvestamise probleemi juurde

[Kopeeri link]
Postitatud 05.09.2015 10:21:58 | | |
jquery getJson meetod loeb sama päringu otse vahemälust pärast esimest päringut serverile, et saada tagastatud andmed, ega taotle enam andmebaasi.

Siin on, kuidas seda parandada:

1 Tee URL iga kõne jaoks erinevaks
Meetod: Lisa parameetrile juhuslik arv.
Näide 1:
jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){}
Näide 2:
"xxx.aspx?randID="+Math.random
Näide 3:
"xxx.aspx?randID="+ escape(new Date())
2 Sea vahemälu vale väärtuseks
$.ajax vahemäluta versioon:
$.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){
alert (MSG);
}
});
3. Lisa labels.html faili ülaossa järgmine väide:

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

<META HTTP-EQUIV="Aegub" SISU="-1">
4. Laadimisfunktsioon suudab kutsuda mitte ainult HTML-i, vaid ka skripti, näiteks labels.php saab kasutada päise funktsiooni php-failis:

<?php

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

?>
5 Kasuta posti meetodi asemel.
Postitamise meetodi kasutamisel pead pöörama tähelepanu:
Määra päise kontekstitüüp application/x-www-form-urlencode, et server teaks, et üksuses on parameetrimuutujad. Tavaliselt kasutatakse XmlHttpRequest objekti SetRequestHeader'i ("Context-Type","application/x-www- form-urlencoded); ")。 Näide:

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
Parameeter on võtme-väärtuse paar, mis vastab nimele/väärtusele, ning iga väärtuspaar on eraldatud > märgiga. Näiteks var name=abc&sex=man&age=18, pöörake tähelepanu var-ile name=update.php?

abc&sex=man&age=18 ja var name=?abc&sex=man&age=18 on valesti kirjutatud;
Argument saadetakse Send meetodis, nt xmlHttp.send(name); Kui see on get meetod, siis otse xmlHttp.send(null);

Serveripoolne päringuparameeter eristab Get ja Post. Kui see on get meetod, siis $username = $_GET["username"]; Kui tegemist on postitamise meetodiga, siis $username = $_POST["kasutajanimi"];
6 Lisa serveri poolele päis ("Cache-Control: no-cache, must-reva lidate");
7 Lisa xmlHttpRequest.setRequestHeader("If-Modified-Since","0") enne, kui ajax päringu saadab;
8 Lisa xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") enne, kui ajax päringu saadab;




Eelmine:c# Konverteeri \u64CD\u4F5C\u6210\u529F hiina keelde "Operatsioon edukas"
Järgmine:Validate jQuery html5Validate plugin, mis põhineb HTML5 vormidel
 Üürileandja| Postitatud 05.09.2015 10:23:09 |
url?username=test&aaa= Math.random()
 Üürileandja| Postitatud 05.09.2015 10:24:24 |
$.getJson meetod Kui sama lehte taotletakse korduvalt, laaditakse vahemälust ainult andmed ning URL-i tuleb iga kord uuesti laadides järgida dünaamilised parameetrid
$.getJson('a.ashx?t='+new Date() ,'{a:b}',fun.... )
Parameetrite muutmine parameetrite nimekirjas on kehtetu.
function changeValidateCode(obj) {
//获取当前的时间作为参数,无具体意义
var timenow = uus Date().getTime();
//每次请求需要一个不同的参数,否则可能会返回同样的验证码
See on seotud brauseri vahemällu salvestamise mehhanismiga ning saad ka seadistada lehe nii, et see parameeter ei oleks vahemällu salvestatud, nii et seda parameetrit ei kasutata.
obj.src='rand.action?d='+timenow;
}
<img id='rand' src='rand.action?t=<%=new Date().getTime() %>' onclick='changeValidateCode(this)' title='Ei näe selgelt? Vaheta üks! ' width='50' kõrgus='22'/>
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com