Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 21:03   #1
Grind
Пользователь
 
Регистрация: 18.02.2008
Сообщений: 17
По умолчанию Кеширование ответа AJAX

ситуация такова:
есть скрипт на php, который рандомно(преднамеренно) извлекает из базы соответсвующую информацию. если запускать скрипт напрямую — все отлично раюотает.

если обращаться к скрипту через AJAX то оно постоянно возвращает одинаковый ответ. т.е. рандомной генерации при каждом запросе не происходит
Grind вне форума Ответить с цитированием
Старый 23.03.2009, 07:10   #2
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

как получение данных ajax запроса в браузере обрабатываешь?
FANATID вне форума Ответить с цитированием
Старый 23.03.2009, 18:21   #3
Grind
Пользователь
 
Регистрация: 18.02.2008
Сообщений: 17
По умолчанию

есть блок, в него:

document.getElementById("id_блока") .innerHTML=request.reaponseText;
Grind вне форума Ответить с цитированием
Старый 23.03.2009, 18:21   #4
Grind
Пользователь
 
Регистрация: 18.02.2008
Сообщений: 17
По умолчанию

ну и конечно контролю состояние запроса и статус

Последний раз редактировалось Grind; 23.03.2009 в 18:30.
Grind вне форума Ответить с цитированием
Старый 23.03.2009, 19:22   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,160
По умолчанию

Цитата:
Сообщение от Grind Посмотреть сообщение
ну и конечно контролю состояние запроса и статус
а в серверной части какой код? мы ж не телепаты....
ADSoft вне форума Ответить с цитированием
Старый 23.03.2009, 21:25   #6
Grind
Пользователь
 
Регистрация: 18.02.2008
Сообщений: 17
По умолчанию

серверная часть:

PHP код:
require_once('../blocks/db_connection.php');
require_once(
'../source/date.php');
require_once(
'../source/source.php');
        
if(
$getInfo=$db->query("select * from authors order by name"))
{
    while(
$gotInfo=$getInfo->fetch_array())
    {
        
$quot=getRandQuot($db,$gotInfo['atr_id']);
        echo
'<div class="personblock">
                  //контент блока
            </div>'
;
    }
}
else
           echo 
'</br>bad request to a database</br>'
---

PHP код:
function getRandQuot($db,$atrId=0)
{
    if(
$atrId==0)
        
$atrId=getRandAtrId($db);
        
    
$quotId=getRandQuotId($db,$atrId); // выдирает из базы рандомный $quotId, соответсвующий $atrId
    
    
if($getQuot=$db->query("select name,quot from authors,quotations where authors.atr_id='$atrId' and authors.atr_id=quotations.atr_id and quotations.quot_id='$quotId' "))
    {
        
$gotQuot=$getQuot->fetch_array();
        
        return 
$gotQuot;
    }
    else
        
getRandQuot($db);


Последний раз редактировалось Grind; 23.03.2009 в 23:03.
Grind вне форума Ответить с цитированием
Старый 23.03.2009, 22:31   #7
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Кеширование отмени в РНР.
SkyM@n вне форума Ответить с цитированием
Старый 23.03.2009, 22:59   #8
Grind
Пользователь
 
Регистрация: 18.02.2008
Сообщений: 17
По умолчанию

благодарю.
Grind вне форума Ответить с цитированием
Старый 24.03.2009, 11:53   #9
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

SkyM@n, не нужно ничего в настройках php изменять
просто на сервере в скрипте нужно добавить
Код:
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
FANATID вне форума Ответить с цитированием
Старый 24.03.2009, 12:11   #10
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

Цитата:
Сообщение от FANATID Посмотреть сообщение
SkyM@n, не нужно ничего в настройках php изменять
просто на сервере в скрипте нужно добавить
Код:
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
А кто говорил о настройках РНР? Зачем такое извращение...
Имелось ввиду именно в теле скрипта.
SkyM@n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Постобработка НТТP-ответа pasta Работа с сетью в Delphi 7 25.02.2009 00:59
Кривые рожи на страничке расширенного ответа Sibedir О форуме и сайтах клуба 4 15.02.2008 10:51
вывод ответа на соответвующий вопрос Phoenix53 Общие вопросы Delphi 5 26.04.2007 00:59
обработка вариантов ответа из матрицы Alar Общие вопросы Delphi 0 29.10.2006 11:06