методът getJson на jquery чете същата заявка директно от кеша след първата заявка към сървъра за получаване на върнатите данни и вече не иска базата данни.
Ето как да го оправите:
1 Направете URL адреса различен за всяко обаждане Метод: Добавете произволно число към параметъра. Пример 1: jQuery.getJSON("$!{ Root}/a/a/s.ashx",{"ID":id,"Name":name,"Path":p ath,random:Math.random()},function(responseText){} Пример 2: "xxx.aspx?randID="+Math.random Пример 3: "xxx.aspx?randID="+ escape(new Date()) 2 Настройте кеша на False $.ajax некеширана версия: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ аларм (msg);
} }); 3. Включете следното твърдение в горната част на labels.html файла:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Изтича" СЪДЪРЖАНИЕ="-1"> 4. Функцията за зареждане може не само да извиква HTML, но и скрипт, като labels.php, можете да използвате заглавната функция в php файла:
<?php
header ("Cache-Control: без кеш, трябва да превалидират");
?> 5 Използвай метод post вместо get. Когато използвате метода Post, трябва да обърнете внимание към: Задайте Context-Type на заглавието application/x-www-form-urlencode, за да гарантирате, че сървърът знае, че в обекта има параметрични променливи. Обикновено се използва SetRequestHeader ("Context-Type","application/x-www- form-urlencoded) на обекта XmlHttpRequest; ")。 Пример:
xmlHttp.setRequestHeader ("Content-Type","application/x-www-form-urlencoded"); Параметърът е двойка ключ-стойност, съответстваща на името/стойността, и всяка двойка стойности е разделена с > знак. Например, var name=abc&sex=man&age=18, обърнете внимание на var name=update.php?
abc&sex=man&age=18 и var name=?abc&sex=man&age=18 са написани неправилно; Аргументът се изпраща чрез метода Send, напр. xmlHttp.send(name); Ако е метод за получаване, директно xmlHttp.send(null);
Параметърът за заявка от страна на сървъра прави разлика между Get и Post. Ако това е методът get, тогава $username = $_GET["username"]; Ако е метод за публикуване, тогава $username = $_POST["потребителско име"]; 6 Добавете заглавие ("Cache-Control: no-cache, must-reva lidate") от страна на сървъра; 7 Добавете xmlHttpRequest.setRequestHeader ("If-Modified-Since","0") преди ajax да изпрати заявката; 8 Добавете xmlHttpRequest.setRequestHeader ("Cache-Control", "no-cache") преди ajax да изпрати заявката;
|