Metode getJson jquery membaca permintaan yang sama langsung dari cache setelah permintaan pertama ke server untuk mendapatkan data yang dikembalikan, dan tidak lagi meminta database.
Berikut cara memperbaikinya:
1 Buat URL berbeda untuk setiap panggilan Metode: Tambahkan angka acak ke parameter. Contoh 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Contoh 2: "xxx.aspx?randID="+Math.random Contoh 3: "xxx.aspx?randID="+ escape(new Date()) 2 Atur cache ke False $.ajax versi yang tidak di-cache: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ Waspada (msg);
} }); 3. Sertakan pernyataan berikut di bagian atas file labels.html:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="kedaluwarsa" CONTENT="-1"> 4. Fungsi beban tidak hanya dapat memanggil HTML, tetapi juga skrip, seperti labels.php, Anda dapat menggunakan fungsi header dalam file php:
<?php
header("Cache-Control: no-cache, must-revalidate");
?> 5 Gunakan metode posting alih-alih dapatkan. Saat menggunakan metode Posting, Anda perlu memperhatikan: Atur Context-Type header ke application/x-www-form-urlencode untuk memastikan bahwa server mengetahui bahwa ada variabel parameter dalam entitas. Biasanya menggunakan SetRequestHeader("Context-Type","application/x-www- form-urlencoded) dari objek XmlHttpRequest; ")。 Contoh:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parameter adalah pasangan kunci-nilai yang sesuai dengan nama/nilai, dan setiap pasangan nilai dipisahkan oleh tanda >. Misalnya, var name=abc&sex=man&age=18, perhatikan var name=update.php?
abc&sex=man&age=18 dan var name=?abc&sex=man&age=18 ditulis dengan salah; Argumen dikirim dalam metode Send, misalnya xmlHttp.send(name); Jika itu adalah metode get, langsung xmlHttp.send(null);
Parameter permintaan sisi server membedakan antara Get dan Post. Jika itu adalah metode get, maka $username = $_GET["username"]; Jika itu adalah metode posting, maka $username = $_POST["nama pengguna"]; 6 Tambahkan header ("Cache-Control: no-cache, must-reva lidate") di sisi server; 7 Tambahkan xmlHttpRequest.setRequestHeader("If-Modified-Since","0") sebelum ajax mengirim permintaan; 8 Tambahkan xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") sebelum ajax mengirim permintaan;
|