Метод 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(нова Дата()) 2 Встановити кеш на False $.ajax некешована версія: $.ajax({
type:"GET"
url:'test.html',
cache:false,
dataType:"html",
success:function(msg){ alert(msg);
} }); 3. Включіть наступне твердження у верхню частину файлу labels.html:
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Закінчується" КОНТЕНТ="-1"> 4. Функція завантаження може викликати не лише HTML, а й скрипт, наприклад labels.php, ви можете використовувати функцію заголовка у php-файлі:
<?php
header("Cache-Control: no-cache, must-revalidate");
?> 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); Якщо це метод get, напряму xmlHttp.send(null);
Параметр серверного запиту розрізняє Get і Post. Якщо це метод get, то $username = $_GET["ім'я користувача"]; Якщо це метод посту, то $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 надсилає запит;
|