jquery'nin getJson yöntemi, geri dönen veriyi almak için sunucuya ilk istekten sonra aynı isteği doğrudan önbellekten okur ve artık veritabanını talep etmez.
İşte nasıl düzeltileceği:
1 Her çağrı için URL'yi farklı yapın Yöntem: Parametreye rastgele bir sayı ekleyin. Örnek 1: jQuery.getJSON("$!{ Kök}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Örnek 2: "xxx.aspx?randID="+Math.random Örnek 3: "xxx.aspx?randID="+ escape(new Date()) 2 Önbelleği Yanlış olarak ayarla $.ajax önbelleksiz sürüm: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(mesaj);
} }); 3. labels.html dosyasının üstüne aşağıdaki ifadeyi ekleyin:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1"> 4. Yükleme fonksiyonu sadece HTML'yi değil, aynı zamanda script de çağırabilir, örneğin labels.php, php dosyasında başlık fonksiyonunu kullanabilirsiniz:
<?php
başlığı ("Önbellek-Kontrol: önbellek yok, yeniden doğrulamalı");
?> 5 Get yöntemi yerine post kullanın. Post yöntemini kullanırken şunlara dikkat etmelisiniz: Sunucunun varlıkta parametre değişkenleri olduğunu bilmesini sağlamak için başlığın Context-Type özelliğini application/x-www-form-urlencode olarak ayarlayın. Genellikle XmlHttpRequest nesnesinin SetRequestHeader("Context-Type","application/x-www- form-urlencoded) dosyasını kullanır; ")。 Örnek:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); Parametre, isim/değere karşılık gelen bir anahtar-değer çiftidir ve her değer çifti > işaretiyle ayrılır. Örneğin, var name=abc&sex=man&age=18, var name=update.php'ye dikkat edin?
abc&sex=adam&yaş=18 ve var adı=?abc&sex=adam&yaş=18 yanlış yazılmıştır; Argüman, Send yöntemiyle gönderilir, örneğin xmlHttp.send(name); Eğer bu bir get yöntemiyse, doğrudan xmlHttp.send(null);
Sunucu tarafı istek parametresi Al ile Post arasındaki ayrımı yapar. Eğer get yöntemi ise, $username = $_GET["kullanıcı adı"]; Eğer bu bir gönderi yöntemiyse, $username = $_POST["kullanıcı adı"]; 6 Sunucu tarafına başlık ("Cache-Control: no-cache, must-reva lidate") ekleyin; 7 ajax isteği göndermeden önce xmlHttpRequest.setRequestHeader("If-Modified-Since","0") ekleyin; 8 Ajax isteği göndermeden önce xmlHttpRequest.setRequestHeader("Cache-Control","no-cache") ekleyin;
|