Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запросы в jQuery, не получается отключить кэширование 
V
    Опции темы
Sentox
  Дата 25.7.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: нет
Всего: 7



Здраствуйте!

Помогите пожалуйста!!!
Есть форма и в ней некоторое количество кнопок(submit).
Они "повешаны" на событие onClick и функцию query(id, action).
Сам код:
Код

function query(id, action) {

    $(document).ready(function(){

        $('#form').submit(function(){

            $.ajax({
                type: "POST",
                url: "/admin/ajax.php",
                cache: false,
                data: "id=" + id + "&action=" + action,
                dataType: 'html',
                success: function(html){
                    $("#ajax").html(html);
                }
            });

            if (action == "delete") {
                $(this).parents("#row" + id).animate({ 
                    opacity: "hide"
                }, "slow");
            }
            return false;
        });
    });
}


Браузер постоянно накапливает запросы, то есть при клике на кнопку допустим в пятый раз (на любую кнопку) в данной форме, отправляются все запросы, которые были до этого.
При всё что кэширование отключено и в скрипте ajax.php отсылаются хедеры для отмены кэширования:
Код

<?php
header('Content-type: text/html; charset="windows-1251"',true);
setlocale(LC_ALL, 'ru_RU');

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>


Помогите найти проблему плиз !!!
P.S.: Пробовал и отключение кэширования в самом браузере (Mozilla 3)

Это сообщение отредактировал(а) Sentox - 25.7.2009, 18:23
PM MAIL   Вверх
IDVsbruck
Дата 26.7.2009, 00:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Ой, какой тяжелый случай ...
по клику вызываешь функцию, в которой выполняется обработчик, который должен сработать при загрузке страницы, который запускает обработчик отправки формы, который отправляет запрос на сервер ... ух! Похоже на синичку, которая воровала овес, который ... в доме который построил Джек, не правда ли?

Давай начнем с простых вещей - простого выполнения функции

Код

function query(id, action) {
    $.ajax({type:"POST", url:"/admin/ajax.php", cache:false, data:{id=id, action=action}, dataType: 'html', success:function(html){$("#ajax").html(html)}});
    if (action == "delete") $(this).parents("#row" + id).animate({opacity:"hide"}, "slow");
    return false;
};

И если после этого будут проблемы, то будем их решать по вновь открывшимся обстоятельствам.
PM MAIL   Вверх
Sentox
Дата 26.7.2009, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: нет
Всего: 7



Спасибо что решили мне помочь!!!

Всё так же работает, накапливаются запросы.Забыл сказать, может поможет, при обновлении страницы обычным образом (через ссылку на обрабатывающий скрипт), всё сбрасывается.

Странно ничего не менял сейчас пишет "The data area passed to a system call is too small. "

Вот html код:

Код

<tr id = "row{id}">
    <td align="center">{id}</td>
    <td>{subject}</td>
    <td>{text}</td>
    <td align="center">{end_date}</td>
    <td>
        <table>
            <!--<form id = "myForm{id}">-->
                <tr>
                    <td align="center">
                        <input class = "button_del" id = "delete{id}" type='submit' name='act' value='Delete' onclick="query({id}, 'delete')">
                        <input class = "button_edit" id = "edit{id}" type='submit' name='act' value='Edit' onclick="query({id}, 'edit')">
                    </td>
                </tr>
           <!-- </form>-->
        </table>
    </td>
</tr>


Это сообщение отредактировал(а) Sentox - 26.7.2009, 15:18
PM MAIL   Вверх
Sentox
Дата 26.7.2009, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


как то так
**


Профиль
Группа: Участник
Сообщений: 392
Регистрация: 27.1.2009
Где: Зимбабве

Репутация: нет
Всего: 7



Надо же с чего то начинать.
Понял как всё это делается.
Спасибо за отзывчивость.
Решение:
Код

$(document).ready(function(){

    $(function(){
        $('input').bind('click', function(evt){
            $.ajax({
                cache: false,
                type: "POST",
                url: "ajax.php",
                data: "id="+this.id+"&action="+this.name,
                dataType: 'html',
                success: function(html){
                    $("#ajax").html(html);
                }
            });
            return false;
        });
    });

});

PM MAIL   Вверх
IDVsbruck
Дата 27.7.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Наша писня гарна нова ...
$(document).ready(function(){...}) и $(function(){...}) - идентичны! А ты их вставляешь друг в друга.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.