Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12520|Atbildi: 2

[Jquery] [Pagriezties] uz jQuery.getJSON kešatmiņas problēma

[Kopēt saiti]
Publicēts 05.09.2015 10:21:58 | | |
jquery getJson metode nolasa to pašu pieprasījumu tieši no kešatmiņas pēc pirmā pieprasījuma serverim, lai iegūtu atgrieztos datus, un vairs nepieprasa datu bāzi.

Tālāk ir aprakstīts, kā to novērst.

1 URL atšķirība katram zvanam
Metode: pievienojiet parametram nejaušu skaitli.
1. piemērs:
jQuery.getJSON("$!{ sakne}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){}
2. piemērs:
"xxx.aspx?randID="+Math.random
3. piemērs:
"xxx.aspx?randID="+ escape(jauns datums())
2 Iestatiet kešatmiņu uz False
$.ajax uncached versija:
$.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){
brīdinājums (msg);
}
});
3. Iekļaujiet šādu paziņojumu labels.html faila augšpusē:

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

<META HTTP-EQUIV="Beidzas" CONTENT="-1">
4. Ielādes funkcija var ne tikai izsaukt HTML, bet arī skriptu, piemēram, labels.php, php failā varat izmantot galvenes funkciju:

<?php

header("Kešatmiņas kontrole: bez kešatmiņas, jāapstiprina atkārtoti");

?>
5 Izmantojiet ziņu, nevis iegūt metodi.
Izmantojot Post metodi, jums jāpievērš uzmanība:
Iestatiet galvenes konteksta tipu uz application/x-www-form-urlencode, lai nodrošinātu, ka serveris zina, ka entītijā ir parametru mainīgie. Parasti izmantojiet XmlHttpRequest objekta SetRequestHeader("Context-Type","application/x-www- form-urlencoded); ")。 Piemērs:

xmlHttp.setRequestHeader("Satura tips","application/x-www-form-urlencoded");
Parametrs ir atslēgas un vērtības pāris, kas atbilst nosaukumam/vērtībai, un katrs vērtību pāris ir atdalīts ar > zīmi. Piemēram, var name=abc&sex=man&age=18, pievērsiet uzmanību var name=update.php?

abc&sex=man&age=18 un var name=?abc&sex=man&age=18 ir uzrakstīti nepareizi;
Arguments tiek nosūtīts, izmantojot sūtīšanas metodi, piemēram, xmlHttp.send(nosaukums); Ja tā ir iegūšanas metode, tieši xmlHttp.send(null);

Servera puses pieprasījuma parametrs atšķir Get un Post. Ja tā ir get metode, tad $username = $_GET["lietotājvārds"]; Ja tā ir ziņu metode, tad $username = $_POST["lietotājvārds"];
6 Pievienojiet galveni ("Kešatmiņas kontrole: bez kešatmiņas, must-reva lidate") servera pusē;
7 Pievienojiet xmlHttpRequest.setRequestHeader("If-Modified-Since","0") pirms ajax nosūta pieprasījumu;
8 Pievienojiet xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") pirms ajax nosūta pieprasījumu;




Iepriekšējo:c# Konvertēt \u64CD\u4F5C\u6210\u529F uz ķīniešu valodu "Operācija veiksmīga"
Nākamo:Validēt jQuery html5Validēt spraudni, pamatojoties uz HTML5 veidlapām
 Saimnieks| Publicēts 05.09.2015 10:23:09 |
url?lietotājvārds=tests&aaa= Matemātika.nejaušs()
 Saimnieks| Publicēts 05.09.2015 10:24:24 |
$.getJson metode Ja viena un tā pati lapa tiek pieprasīta atkārtoti, no kešatmiņas tiek ielādēti tikai dati, un URL ir jāseko dinamiskajiem parametriem katru reizi, kad tas tiek atkārtoti ielādēts
$.getJson('a.ashx?t='+new Date() ,'{a:b}',fun.... )
Parametru saraksta parametru maiņa nav derīga.
function changeValidateCode(obj) {
//获取当前的时间作为参数,无具体意义
var timenow = jauns Datums().getTime();
//每次请求需要一个不同的参数,否则可能会返回同样的验证码
Tas ir saistīts ar pārlūkprogrammas kešatmiņas mehānismu, un jūs varat arī iestatīt, lai lapa nebūtu kešatmiņa, lai šis parametrs netiktu izmantots.
obj.src='rand.action?d='+timenow;
}
<img id='rand' src='rand.action?t=<%=new Date().getTime() %>' onclick='changeValidateCode(this)' title='Vai nevarat skaidri redzēt? Mainiet vienu! ' width='50' height='22'/>
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com