Xwab
Форумыnavigate_nextJavaScript

Пару вопросов по jQuery
Сообщения
IceJOKER

Есть ajax запрос , которая динамически меняет данные блока, и есть другие ajax запросы, как мне разделить эти ajax запросы так чтобы я мог отдельно пользоваться методом ajaxStart(). (например если на странице много тегов "a" , то их можно разделить id-ом или name-ом, нужно аналог для разделения ajax запросов).


Еще - как реализовать такую фишку как в yandex metrika - "Загрузка страницы", т.е пока выполняется ajax запрос экран блокируется и выводится маленькое окошко.
это плагин dialog или что ?

11 Янв 2013, 14:20
Aventus

Что бы блокировать экран нужно выводить диалог с параметром modal:true. На счет разделения запросов сказать не могу. Я всегда использовал
самый простой метод [php:1:7700be921f]$("div#id").load("send.php?text="+encodeURI(text));[/php:1:7700be921f]
Если я правильно понял на каждую ссылку нужно повесить отдельный запрос, это элементарно можно сделать выборкой $("a").

11 Янв 2013, 14:29
IceJOKER

$("#dialog1").dialog("open");

^^^
раньше работал код , теперь перестала работать, не могу понять где ошибка, файрбаг молчит

11 Янв 2013, 14:49
Gemorroj

$("#dialog1").length посмотри. Мб элемента нету.
1 вопрос вообще не понял.
для блокировки экрана есть куча плагинов. общий алгоритм их - создается полупрозрачный div с абсолютным позиционированием на весь экран. запуск/остановку блокировки лучше делать через ajaxSetup

11 Янв 2013, 15:01
IceJOKER

Gemorroj, с диалог справился, теперь хотел бы удалить оттуда кнопку закрытия окна.(крестик в тайтле).


1 вопрос-
Например есть много ajax запросов одновременных ,
a.js - отправляет запрос на a.php
b.js - отправляет запрос на b.php

теперь мне нужно отдельно для каждого запроса обработать метод ajaxStart()|Stop|Complete и т.д.



Объясню вам на примере:
После загрузки страницы у меня отправляются несколько ajax запросов и есть еще один запрос который отправляется когда пользователь нажимает на ссылку(выполняется $("#content').load(url+" #content"); - т.е. загрузка данных без перезагрузки страницы). так вот, мне надо вывести картинку ajaxLoader пока запрос обрабатывается

11 Янв 2013, 15:07
Gemorroj

для этого, тебе нужно 1 раз указать параметры в ajaxSetup.
Пример из боевого проекта:
$(document).ready(function () {
    $.ajaxSetup({
        dataType: "json", // тут предпочитаемый тип данных
        beforeSend: Base.Loader.start, // тут запускается твой диалог
        complete: Base.Loader.stop, // тут останавливается твой диалог
        error: function (error) { // тут обработка ошибок
            var message = '';
            if (error.status !== 200) {
                message = error.statusText;
            } else {
                message = error.responseText;
            }
            Base.Message.showError(message || 'AJAX Error!');
        }
    });
});
добавлено спустя 1 минуту:
Чтобы для нескольких ajax запросов лодер запускался только один, нужно несколько ajax запросов объеденить в 1 запрос с помощью jQuery функции when

11 Янв 2013, 15:30
IceJOKER

Gemorroj, не очень понял, утро вечера мудренее , утром попробую

11 Янв 2013, 15:54
Ответить на тему