Есть ajax запрос , которая динамически меняет данные блока, и есть другие ajax запросы, как мне разделить эти ajax запросы так чтобы я мог отдельно пользоваться методом ajaxStart(). (например если на странице много тегов "a" , то их можно разделить id-ом или name-ом, нужно аналог для разделения ajax запросов).
Еще - как реализовать такую фишку как в yandex metrika - "Загрузка страницы", т.е пока выполняется ajax запрос экран блокируется и выводится маленькое окошко.
это плагин dialog или что ?
Что бы блокировать экран нужно выводить диалог с параметром modal:true. На счет разделения запросов сказать не могу. Я всегда использовал
самый простой метод [php:1:7700be921f]$("div#id").load("send.php?text="+encodeURI(text));[/php:1:7700be921f]
Если я правильно понял на каждую ссылку нужно повесить отдельный запрос, это элементарно можно сделать выборкой $("a").
$("#dialog1").dialog("open");
^^^
раньше работал код , теперь перестала работать, не могу понять где ошибка, файрбаг молчит
$("#dialog1").length посмотри. Мб элемента нету.
1 вопрос вообще не понял.
для блокировки экрана есть куча плагинов. общий алгоритм их - создается полупрозрачный div с абсолютным позиционированием на весь экран. запуск/остановку блокировки лучше делать через ajaxSetup
Gemorroj, с диалог справился, теперь хотел бы удалить оттуда кнопку закрытия окна.(крестик в тайтле).
1 вопрос-
Например есть много ajax запросов одновременных ,
a.js - отправляет запрос на a.php
b.js - отправляет запрос на b.php
теперь мне нужно отдельно для каждого запроса обработать метод ajaxStart()|Stop|Complete и т.д.
Объясню вам на примере:
После загрузки страницы у меня отправляются несколько ajax запросов и есть еще один запрос который отправляется когда пользователь нажимает на ссылку(выполняется $("#content').load(url+" #content"); - т.е. загрузка данных без перезагрузки страницы). так вот, мне надо вывести картинку ajaxLoader пока запрос обрабатывается
для этого, тебе нужно 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